Получаем бесплатные SSL сертификаты для домена
StarSSL — это сервис выдачи авторизованных сертификатов, который предоставляет всем бесплатный сертификат на 1 год (который, через год можно будет продлить еще)! Далее, мы рассмотрим необходимые действия для получения сертификата!
- Первым делом необходимо зарегистрироваться в StartSSL и войти в панель управления аккаунтом. Вход осуществляется по цифровой подписи, которая генерируется при регистрации! Ссылка не генерацию ключа, придет по почте.
- Далее, необходимо сгенерировать ключ и сертификат домена по ssh:
openssl genrsa -des3 -out server.key.secure 2048
openssl rsa -in server.key.secure -out server.key
openssl req -new -key server.key -out server.csr
В контрольной панели (control panel) необходимо нажать на "certificates wizard" для генерации нового сертификата и выбрать "web server ssl certificate". Нажмите "Skip the first step" и вставьте содержимое server.csr в поле и нажмите завершить. Таким образом мы используем собственные ключ и сертификат сервера.
Через несколько часов придет ссылка на сгенерированный сертификат. Сертификат генерируется от 1 часа до 3-5 часов. Далее в "tool box" выберите "retrieve certificate" и выберите домен. Далее, содержимое из поля нужно вставить в server.crt в этом файле получается 2 сертификата!
- 1. сертификат полученный в StarSSL
- 2. сертификат сгенерированный на сервере!
Далее, загрузите sub.class1.server.ca.pem из хранилища всех сертификатор http://www.startssl.com/certs/
Выполняем в консоли: cat sub.class1.server.ca.pem >> server.crt
Наш сертификат почти готов, необходимо их отделить в отдельную папку:
sudo cp server.crt /etc/ssl/example.com.crt
sudo cp server.key /etc/ssl/example.com.key
В настройках сайта в nginx указываем:
server {
.
.
listen 80;
listen 443 ssl;
ssl on;
ssl_certificate /etc/ssl/example.com.crt;
ssl_certificate_key /etc/ssl/example.com.key;
.
.
}
Далее тестируем: nginx -t если все ок, тогда делаем service nginx restart
Для автоматического перенаправления на https добавляем это:
location / { rewrite ^(.*)$ https://example.com$1 permanent; }
Почитать подброее: http://nginx.org/ru/docs/http/configuring_https_servers.html
http://minhajuddin.com/2011/03/11/how-to-hookup-nginx-with-startssl