База знаний по Open Source
Авторизация
Поиск по базе знаний

Незащищённое http – соединение опасно тем, что существует возможность прослушивания трафика и соответственно паролей, отсылаемых на сайты вместе с логинами по POST или GET.

Использование сертификатов защищает от пассивного прослушивания и, если сертификат подписан компанией-центром сертификации (Certificate authority или CA) , гарантирует клиентам, что сервер является именно тем сервером, который им нужен.То-есть сертификат, подписанный CA, предоставляет два важных свойства в отличие от самоподписанного сертификата:

  1. Браузеры (обычно) автоматически распознают такой сертификат и позволяют устанавливать защищенные соединения без предупреждения пользователя.
  2. Когда CA выпускает подписанный сертификат, он гарантирует идентичность организации, которая предоставляет интернет страницы браузеру.

В Ubuntu есть возможность создания самоподписанных сертификатов, которые бесплатны и только шифруют трафик. Для большинства случаев этого достаточно.

Для начала, если не установлен, необходимо установить openssl:

sudo apt-get update
sudo apt-get install openssl

Для создания ключа и сертификата вводим команду:

sudo openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/server.pem -keyout /etc/ssl/private/server.key

Этой командой  генерируется ключ без пароля (passphrase), чтобы Apache не мучил запросам пароля при каждом перезапуске.

На вопрос «Common Name (e.g. server FQDN or YOUR name) []:» необходимо ввести имя сайта, для которого создается сертификат, например www.example.com.

Настройка Apache

Для начала необходимо активировать mod_ssl:

sudo a2enmod ssl

а затем включить настройки HTTPS сайта по умолчанию:

sudo a2ensite default-ssl

Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к сертификатам.
Сам файл называется

/etc/apache2/sites-enabled/default-ssl.conf

В этом файле рекомендуется после директивы

SSLEngine on

добавить строчку

SSLProtocol all -SSLv2

чтобы запретить использование устаревшего протокола SSLv2.

Дальше необходимо отредактировать параметры, ответственные за сертификаты.

# Публичный сертификат сервера
SSLCertificateFile    /etc/ssl/certs/server.pem
# Приватный ключ сервера
SSLCertificateKeyFile /etc/ssl/private/server.key

Перезагрузить  Apache:

sudo service apache2 restart

И если все параметры указаны верно, сайт станет доступнен по HTTPS.

Протокол HTTPS работает по 443 порту, поэтому если сервер находится за шлюзом, то необходимо на нём пробросить данный порт.

 

Добавить комментарий