Настройка SSL в Apache CentOS

В предыдущей статье я описал процесс получения SSL сертификата в StartSSL. Теперь пришло время воспользоваться полученными сертификатами.



Для начала, следует установить модуль SSL для Apache, если он не установлен:
# yum install mod_ssl
Теперь, когда у вас на руках есть 2 файла ssl.key ssl.crt, можно приступать к настройке Apache. Вся настройка Apache заключается в установке значений двух параметров:
  • SSLCertificateFile - Путь к сертификату .crt
  • SSLCertificateKeyFile - Путь к закрытому ключу .key
Файлы сертификатов можно разместить где угодно, но по-умолчанию в CentOS они лежат тут:
  • /etc/pki/tls/certs/ssl.crt
  • /etc/pki/tls/private/ssl.key
Apache хранит свои файлы конфигурации по адресу /etc/httpd/. В каталоге /etc/httpd/conf.d создадим файл ssl.conf, если его нет. И если его там не было, заполним его таким содержимым:
LoadModule ssl_module modules/mod_ssl.so
Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost _default_:443>
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile <ПУТЬ К СЕРТИФИКАТУ .crt>
SSLCertificateKeyFile <ПУТЬ К ЗАКРЫТОМУ КЛЮЧУ .key>
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>  

Если файл уже существует, просто установите параметры:
SSLCertificateFile <ПУТЬ К СЕРТИФИКАТУ .crt>
SSLCertificateKeyFile <ПУТЬ К ЗАКРЫТОМУ КЛЮЧУ .key>
Либо, вместо стандартных путей, пути к вашим файлам сертификата. Хорошо. Теперь осталось перезапустить apache.
# sudo service httpd restart
Теперь если ввести в строке браузера https://<address>
Страница должна загрузиться с порта 443 в зашифрованном виде. Поздравляю, ssl настроен.

Комментарии

Популярные сообщения из этого блога

Siege Up! Editor (beta)

STM32F4 и программный выход в DFU

Git и Yandex.Disk