Для получения бесплатного сертификата есть несколько вариантов, один из них - Comodo сертификаты, но я достаточно давно и успешно пользуюсь услугами StartSSL, которые не берут деньги за сертификаты первого уровня, зарабатывая на более сложных.
Итак, сначала нажимаете квадратик с ключом справа вверху, выбираете регистрацию новой учетной записи, вводите свои реальные данные (адрес, телефон), они дальше никуда не пойдут, не переживайте. Обращаю внимание, что если вы профукаете ежегодное обновление сертификата, то регистрироваться придется заново (я пробовал обращаться в поддержку, получил письмо, что раз все мои сертификаты устарели, то и смысла старую учетку поднимать нет, кстати, отвечают очень шустро). По результатам пересылки на емейл кодов, их ввода (все однозначно и может быть на русском, если включите соответствующий язык) в ваш браузер будет установлен сертификат. Кстати, несмотря на то, что кто-то пишет о недопустимости использования хрома, я прошел все процедуры без проблем в нем. Сертификат лучше экспортировать и сохранить файликом. Экспорт производится в соответствующем разделе настроек браузера.
Теперь этим браузером, а так же любым другим, куда вы импортируете полученный сертификат, можно логиниться в контрольную панель StartSSL. Просто нажимаете Authenticate и выбираете нужный сертификат из появившегося окошка, если все не произойдет само.
Далее, выбираете закладку
Certificates wizard и в ней опцию Web server certificate
Далее
Generate private key
Вводите какой-нибудь буквенно-цифровой пароль достаточной длины. Вводить еще раз вам придется, но достаточно редко (пару раз в год), поэтому пишите длинный, надежный пароль и где-нибудь запомните его.
Далее
Внимательно читайте, что вам пишут. Полученный в текстовом окошке ключ необходимо сохранить в файл ssl.key
Далее
Выберите нужный вам домен.
Далее
Подумайте хорошенько, сертификат первого уровня (бесплатный) выдается максимум на один поддомен, т.е. я, например, сделал себе на storage.olegon.ru, в котором обязательно закреплен и второй уровень, т.е. olegon.ru. Если вам нужен сертификат только на корневой домен, то сделайте и на www.
Далее
Сохраните полученное в текстовом окне в файл ssl.crt, на этой же странице есть две ссылки на промежуточные сертификаты, лучше на них обратить внимание, хотя они давно не менялись, вот они
https://www.startssl.com/certs/sub.class1.server.ca.pem
https://www.startssl.com/certs/ca.pem
т.е. в итоге у вас получается четыре файла
дальше требуется декриптовать приватный ключ для его привязке к серверу
Код:
openssl rsa -in ssl.key -out /etc/nginx/sitessl.key
вот тут придется ввести пароль, который вы выбрали выше
на файл sitessl.key так же надо будет выдать права и поставить собственника
Код:
chmod 600 /etc/nginx/sitessl.key
chown web:web /etc/nginx/sitessl.key
потом собираем сертификат
Код:
cat ssl.crt sub.class1.server.ca.pem ca.pem > /etc/nginx/sitessl.crt
обратите внимание, что в файле секции не должны склеиваться, т.е. -- BEGIN -- и -- END -- должны быть на разных строках, иначе потом получите
Цитата: nginx: [emerg] PEM_read_bio_X509_AUX
вот, с файлами закончили, осталось их прописать в веб-сервере. На сайте есть примеры, но они достаточно старые. На момент же написания статьи, для nginx подходит следующее
Код:
listen 443 ssl spdy;
ssl_certificate sitessl.crt;
ssl_certificate_key sitessl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
listen может быть одновременно и на 80 (если указать его строкой выше), SSLv3 отключается перечислением протоколов, чтобы нельзя было атаковать POODLE-уязвимостью. И, да, nginx поддерживает SPDY - ускоренная модификация SSL.