nginx ssl сертификат от nic

Дата | 17.06.2016

Понадобилось мне один из проектов мною курируемых, перевести полностью на 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-сертификаты

fryaha.ru_ssl
Выбираем

Новый сертификат

И далее.

С упрощенной проверкой
Thawte SSL123 		3 600 руб./год

Ввод CSR
fryaha.ru_ssl_1
Для ввода 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:
fryaha.ru_ssl_2
После выбираем Apache или Other, без разнице, я выбрал apache, хоть вэб сервер у меня nginx и нажимаем продолжить.
После нужно будит ввести латинскими буквами.
fryaha.ru_ssl_3
Продолжить и подтверждаем.
После прейдет сообщение подтверждения, на почту указанную вами, подтверждаем, что мы хотим сертификат.
Через некоторое время (10-20минут), сертификат будит готов.
fryaha.ru_ssl_4

Нажимаем получить сертификат.

fryaha.ru_ssl_5
Корневой сертификат не обязателен, он присутствует во всех браузерах по умолчанию.
Копируем себе на сервер два сертификата:

Промежуточный сертификат 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 и мы должны попасть на защищенную страницу с замочком.
fryaha.ru_ssl_6
Вот и все.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *