У меня есть веб-сервер Apache, работающий на Ubuntu 10.04, и я хотел бы переключить все на HTTPS.
2 ответа
Apache2 делает это очень легко с помощью дополнительных инструментов, поставляемых вместе с ним. Если у вас установлен пакет apache2-common, вы можете включить модуль mod_ssl
(требуется для HTTPS) одной простой командой:
sudo a2enmod ssl
Apache2 также включает в себя команду, которая поможет вам легко создавать самозаверяющие сертификаты, называемые apache2-ssl-certificate
. Создайте свой сертификат для сервера, как показано ниже, или используйте сертификаты, приобретенные через доверенный корневой CA (Verisign, Entrust, Thawte и т.д.).
sudo apache2-ssl-certificate -days 365
Имейте в виду, что пользователи будут получать это печально известное предупреждение при просмотре вашего сайта, если вы используете самозаверяющий сертификат:
Используйте следующие 4 оператора в конфигурации Apache ( /etc/apache2/sites-available/default
) или директиву VirtualHost (ниже DocumentRoot
), чтобы включить SSL Engine для этого конкретного сайта:
SSLEngine on
SSLOptions +StrictRequire
SSLCertificateFile /etc/apache2/ssl/certs/apache.crt
SSLCertificateKeyFile /etc/apache2/apache-ssl/apache.pem
SSLOptions +StrictRequire
связь SSL только для этого конкретного сайта. SSLCertificateFile
и SSLCertificateKeyFile
указывают расположение вашего SSL-сертификата и его соответствующий ключ.
Убедитесь, что мы прослушиваем порт 443, изменив /etc/apache2/ports.conf
для включения директивы Listen
:
echo "Listen 443" >> /etc/apache2/ports.conf
Наконец, вы должны перезапустить Apache2, чтобы инициировать изменения:
sudo /etc/init.d/apache2 restart
Дополнительное удовольствие:
Сконфигурируйте HTTP-запросы на порт 80 для перенаправления на порт 443 с помощью mod_rewrite
.
Примечание:
Некоторые из этих данных взяты из прошлого опыта работы с системами Debian/Ubuntu, для самых точных инструкций на веб-сайте Ubuntu есть руководство по 10.04.
Я не говорю вам, как это сделать, это выходит за рамки этого форума IMO (1). Я говорю только то, что, я думаю, ты можешь сделать.
Там действительно не легкий способ сделать это. Вы действительно должны немного знать о конфигурации Apache и копаться в файлах конфигурации. В дополнение к этому вам нужен сертификат SSL
Проще всего было бы сказать вашему веб-серверу прекратить прослушивание порта 80 (2) и прослушивать только порт 443. Лучшим решением было бы иметь Apache перенаправить все соединения с порта 80 на порт 443
(1) И вне моей компетенции
(2) Или заблокируйте порт 80 в вашем брандмауэре