SSL сертификат — это круто, модно, а еще безопасно и его рекомендует использовать google. Сегодня я опишу как установить SSL сертификат на свой сервер c 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 на htps 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; server_name myitstuff.ru www.myitstuff.ru; ssl on; # включаем поддержку ssl 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
Если все сделали верно, то увидите примерно следующее:
Комментарии ()