Инструкция как получить в nginx ssl сертификат от nic.
Понадобилось мне один из проектов мною курируемых, перевести полностью на https.
У билайновского интернета есть плохая привычка в лазить в трафик пользователя и подсовывать свою рекламу, выход нашелся, перейти на защищенное соединение.
Решили купить сертификат у nic(ru-center), простой сертификат на год обошелся в 3600 рублей.
Начало, что имеем.
Сервер под управлением системы FreeBSD, с обновленными патчами ssl, вэб сервер nginx.
Собираем nginx с поддержкой ssl.
После генерируем сертификат.
1 Создаем приватный ключ.
# cd /usr/local/etc/nginx/ssl/ # openssl genrsa -des3 -out private.key 2048 Generating RSA private key, 2048 bit long modulus ...............................................................................+++ ..................................................+++ e is 65537 (0x10001) Enter pass phrase for private.key: (создаем пароль, после его отключим)
1_А CSR запрос для приватного ключа
Нужно будит заполнить данные.
# openssl req -new -key private.key -out наш_домен_ru.csr Enter pass phrase for private.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]:RU State or Province Name (full name) [Some-State]:Moscow Locality Name (eg, city) []:Moscow 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 []: не обязательно.
Генерация завершена.
Переходим на сайт ру-центра, авторизуемся.
Услуги / SSL-сертификаты
Новый сертификат
И далее.
С упрощенной проверкой Thawte SSL123 3 600 руб./год
Ввод CSR
Для ввода src, нужно зайти к себе на сервер и вывести данные
# cat наш_домен.csr -----BEGIN CERTIFICATE REQUEST----- MIICvTCCAaUCAQAwRDELM3kHA1UEx7MfUlgxDzSNCgNV4AgTBk1vc2NvdzEPMAV1 A1UEBxMGTm9zY9a3MRAwDgYDVQQKEwdSRVlX4J9EMRMwEQYDVQQDEwpyZXl3b29q LnJ1MSAwHgYJKoZIhvcNAQkBFhFsb25nd2luZ3NAbYFpbC5ydTCCASIwDQYJKoZJ hvcNAQEBBeADggEPADCsAQoCggEBAKXFNqQNddaTaqHtnVoEcIx63vFU5HnBYBeh vIFcAaPWcshPhEVфRgDkZDvKjjgM5yDuVCZD6co1c2pWR/jh0lpuLLQhGFTUBOEC uRRXkvtutsMO9NWwl0AWKaU+r7p+O3k/AedrlCEd1x2PqEf9M1ovrvVjCAociJ+8 J5/TVutRMJSNY7ikLGpnx1v0F9BsQrDlA3GsfrNqYyrG/N449N3ELZ9HbrP64dfO 8Lt4ofz0K03kNjwySMTiOfHaM+HABtZbGTxOIIWkqAElKoEEntJGVtxS5yBLRk9w d9si7tjQDlm1tE3M6ypaUtHR+yDcAI5nJWXYSpdci2zJVJMKcvkCAwEASaAzMA0G CtqGSIb3DQEBBQULA4IBAQBNK87kUs6S6qZTTWpDfTKlQ65E3pUCra6LF6SrcwGa tpwbOlY436cbmRahKhS9cs6hCtV8knU1+E0UcxZ3H3bohAhhAbjVAU2BXEecQKpo Mk05v2VGhg4TLNk92K25ncxLgv3tbKSHNN2X+6ShkPlSEGjimpPUO3Up2DKf7nu+ oEY4qNym0OjZPwsBZfWMi4pkYLntJ4XdmEHZ42L7ksC1AvHh0/KWzHfgHFxr2eT/ TiHBKwRZxujq6p0IU3gci4MrlTpY1KywZLDbufo4blxGqlgCG1v84TlwO6zYTwtT QPjCvFsc2yJX7iKmXKTgqdACkVH47/XwsrFuyNfKdN3M -----END CERTIFICATE REQUEST-----
Копируем и вставляем на сайте ника в окно CSR:
После выбираем Apache или Other, без разнице, я выбрал apache, хоть вэб сервер у меня nginx и нажимаем продолжить.
После нужно будит ввести латинскими буквами.
Продолжить и подтверждаем.
После прейдет сообщение подтверждения, на почту указанную вами, подтверждаем, что мы хотим сертификат.
Через некоторое время (10-20минут), сертификат будит готов.
Нажимаем получить сертификат.
Корневой сертификат не обязателен, он присутствует во всех браузерах по умолчанию.
Копируем себе на сервер два сертификата:
Промежуточный сертификат 1 Сертификат на домен Наш_домен.ru
Теперь переходим на сервер.
Нам нужно объединить два сертификата в один.
Сертификат на домен и промежуточный.
# cat Наш домен_ru_2017_06_17.crt intermediate_pem_thawte_ssl123_1.crt >> bundle.crt
Я все сертификаты храню здесь /usr/local/etc/nginx/ssl
Переходим к настройке nginx, нам нужно весь трафик идущий на 80 порт завернуть на 443 (ssl).
Настройка виртуалхоста нужно домена.
server { listen 80; server_name www.наш_домен.ru; rewrite ^ http://наш_домен.ru$request_uri? permanent; } server { listen 80; server_name наш_домен.ru; rewrite ^(.*) https://наш_домен.ru$uri permanent; } server { listen 443; server_name наш_домен.ru; ssl on; ssl_certificate /usr/local/etc/nginx/ssl/bundle.crt; ssl_certificate_key /usr/local/etc/nginx/ssl/private.key; ... .... ..... далее настройки для сайта.
Убираем пароль от приватного ключа.
# penssl rsa -in /usr/local/etc/nginx/ssl/private.key -out /usr/local/etc/nginx/ssl/private.key
Иначе он при каждой перезагрузки сервер будит спрашивать пароль к ключу.
# nginx -t Enter PEM pass phrase: nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Перезагружаем nginx.
# /usr/local/etc/rc.d/nginx restart
Проверяем проделанную нашу работу в любимом браузере, вводим домен www.наш_домен.ru и мы должны попасть на защищенную страницу с замочком.
Вот и все, мы только что получили nginx ssl сертификат от nic для нашего сайта.
Pingback: Nginx оптимизация ssl сертификата - FRYAHA.RU