SSL для сайта
Всем привет.
Поскольку с 1-го января все сайты протокола HTTP будут считаться браузерами не безопасными, я решил сразу поставить себе SSL сертификат на сайт и перейти на HTTPS.
Процедура для меня конечно не составила много труда.
Хотя с вами я считаю поделиться нужно.
Многие вещи делаются в консольке linux`a, а теперь по порядку.
Для начала нам нужно сделать свой личный сертификат с приватный ключик к нему
для этого на сервере делаем следующее:
openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privatekey.key
Дальше заполняем форму
Generating a 2048 bit RSA private key .....................................+++ ..............................+++ writing new private key to 'privatekey.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: Указываем страну State or Province Name (full name) [Some-State]: Провинцию или область Locality Name (eg, city) []: Город Organization Name (eg, company) [Internet Widgits Pty Ltd]: Ваш сайт или организация Organizational Unit Name (eg, section) []: тоже как и пунктом выше Common Name (e.g. server FQDN or YOUR name) []: ваш сайт Email Address []: ваша почта Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: саш сайт
на выходе у нас получается 2 файла
1. CSR.csr — тут хранится вся ваша информация о том, какой это сертификат и где он находится
2. privatekey.key — сам ключик к этому сертификату.
Сейчас многие конторы выдают сертификаты SSL бесплатно (V cert) они называются и предназначены для 1 домена без уровней. Как бы ну и ладно, платить-то не охота.
Вот к примеру один из регистраторов
https://startssl.com
Если будет проблема с получением сертификата, опишу его отдельно.
Но проблем быть не должно. нам должны дать подписанный сертификат назовем его (cert.crt)
После получения сертификатов создаем общий сертификат (bundle) для NGINX, или на чем у вас там сайты крутятся
cat ./cert.crt ./CSR.csr > cert_bundle.crt
Дальше раскладываем по директориям сертификаты и добавляем следующие строки в конфиг вашего сайта
listen 443; #Enadle HTTPS #Redirect all to https if ($scheme = http) { return 301 https://$server_name$request_uri; } #Enable SSL ssl on; ssl_certificate /etc/nginx/ssl/cert_bundle.crt; ssl_certificate_key /etc/nginx/ssl/privatekey.key;
/etc/init.d/nginx restart
перезапускаем наш веб сервер.
И радуемся подписанному сайту SSL сертификатом.