У меня есть веб-сервер Apache, работающий на Ubuntu 10.04, и я хотел бы переключить все на HTTPS.

2 ответа2

3

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.

2

Я не говорю вам, как это сделать, это выходит за рамки этого форума IMO (1). Я говорю только то, что, я думаю, ты можешь сделать.

Там действительно не легкий способ сделать это. Вы действительно должны немного знать о конфигурации Apache и копаться в файлах конфигурации. В дополнение к этому вам нужен сертификат SSL

Проще всего было бы сказать вашему веб-серверу прекратить прослушивание порта 80 (2) и прослушивать только порт 443. Лучшим решением было бы иметь Apache перенаправить все соединения с порта 80 на порт 443

(1) И вне моей компетенции
(2) Или заблокируйте порт 80 в вашем брандмауэре

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .