Nginx Apache SSL настройка
SSL-сертификат – это круто, модно, а еще безопасно, и его рекомендует использовать Google. Сегодня я опишу, как установить SSL-сертификат на свой сервер с apache + nginx.
Для начала сертификат нужно купить. Я это сделал у своего любимого хостера, обошелся он мне всего в 400 ₽. На Хабре есть описание, как получить сертификат бесплатно, но, поверьте, проще его купить.
Купил я самый дешевый SSL-сертификат Comodo PositiveSSL и после оплаты получил набор из 4 файлов:
AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt
www_myitstuff_ru.crt - сертификат для моего домена
Приватный ключ был выдан отдельно, его нужно сохранить в текстовый файл, я его назвал:
www_myitstuff_ru_private.key
В настройках сервера потребуется указать путь к цепочке сертификатов, для создания цепочки сертификатов запустите консоль сервера или зайдите в неё через PuTTY, перейдите в каталог с сертификатами и выполните команду:
$cat www_myitstuff_ru.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > myitstuff_ru.ca-bundle
В результате выполнения этой команды в каталоге будет создан файл myitstuff_ru.ca-bundle с цепочкой сертификатов.
Сертификаты есть, цепочку создали, осталось указать их в настройках сервера (apache + nginx):
- Проверьте, какой веб-сервер работает на 443 (SSL) порту, для этого в терминале введите команду:
для Linux:
$netstat -napt | grep 443
для FreeBSD:
$sockstat | grep 443
- Если на 443 порту висит apache, то зайдите в файл:
/etc/apache2/ports.conf
Закомментируйте строку:
Listen 443
- Так как ssl-соединениями будет заниматься nginx, то настройки производятся только в его конфиге:
/etc/nginx/sites-available/myitstuff.ru
Настройки Nginx для работы с SSL:
# Настраиваем редирект с http на https
server {
listen 80;
root /home/myitstuff/myitstuff.ru/public_html; # путь к папке с сайтом
server_name myitstuff.ru www.myitstuff.ru; # доменные имена
return 301 https://myitstuff.ru$request_uri; # непосредственно редирект на https
}
server {
listen 443 ssl; # включаем поддержку ssl
server_name myitstuff.ru www.myitstuff.ru;
ssl_certificate /etc/ssl/crt/myitstuff_ru.ca-bundle; # файл цепочки сертификатов
ssl_certificate_key /etc/ssl/crt/www_myitstuff_ru_private.key; # приватный ключ
# ......... остальные настройки .........
}
- Перезагрузите apache и nginx:
$/etc/init.d/apache2 restart
$/etc/init.d/nginx restart
- Проверьте правильность установки сертификата на сайте www.sslshopper.com/ssl-checker.html
Если все сделали верно, то увидите примерно следующее:

Комментарии 0
Написать комментарий