Apache2 настройка SSL

Автор: | 11.05.2019

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

  • openssl req -new -x509 -days 30 -keyout server.key -out server.pem

На вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.site.com

После ответа на все вопросы в директории должны появиться два новых файла — server.pem и server.key(ключ и сертификат, соответственно).

Чтобы использовать сгенерированный ключ нужно знать пароль введенный нами, и Apache будет спрашивать его у нас при загрузке, поэтому для удобства снимаем пароль с ключа:

  • cp server.key{,.orig}
  • openssl rsa -in server.key.orig -out server.key
  • rm server.key.orig

Переместим их в /etc/ssl и назначим файлу ключа права чтения только администратору:

  • sudo cp server.pem /etc/ssl/certs
  • sudo cp server.key /etc/ssl/private
  • sudo chmod 0600 /etc/ssl/private/server.key

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

  • sudo a2enmod ssl

Затем нужно включить настройки дефолтного https-сайта:

  • sudo a2ensite default-ssl

Отредактируем файл с настройками дефолтного https-сайта, указав в нем пути к сертификатам. Файл конфигурации сайта находится по пути /etc/apache2/sites-available/default-ssl.conf.

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

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

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

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

Теперь нужно просто перезапустить Apache:

  • sudo service apache2 restart

И если все сделано правильно, то ваши сайты станут доступны по HTTPS.

Только не забудьте, что для каждого https-сайта нужен свой файл конфига. С этой целью обычно копируют конфиг дефолтного сайта и подставляют значения для нового сайта:

  • sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/site-ssl.conf
  • sudo a2ensite site-ssl

Не забудьте перезапустить сервер.