Создание самоподписанного валидного SSL сертификата для современных браузеров

В предыдущей статье было рассмотрен пример выпуска SSL сертификата с использованием OpenSSL. Но способ хоть и позволяет выпустить самоподписанный сертификат и использовать его на своем веб-сервере, но он не будет считаться валидным для современных браузеров (Chrome, Edge, Firefox и т.д.).

При каких условиях самоподписанный сертификат станет валидным и подтвержденным?

Для того, чтоб самоподписанный сертификат стал восприниматься валидным и подтвержденным необходимо соблюсти некоторые условия:

  1. Необходимо установить на клиентскую машину сертификат корневого центра сертификации
  2. В сертификате должен быть задан Common Name
  3. В альтернативных именах сертификата должны быть указаны все доменные имена, ip-адреса серверов, на которые планируется установка данного сертификата
  4. Должны использоваться современные алгоритмы шифрования, например, для подписи sha-256, для симметричного шифрования aes256, для ассиметричного шифрования RSA с длиной ключа не менее 2048 бит. Могут использоваться и другие алгоритмы. Но перечисленная связка на момент написания статьи работает на всех браузерах.

Что нужно для выпуска самоподписанного сертификата?

Для выпуска сертификата у нас должен быть настроенные центр сертификации, который должен подписать запрос на сертификат и в ответ выдать подписанный сертификат от своего имени.

Формирование запроса на сертификат

Для формирование запроса на сертификат для сайта itarticle.ru создаем файл config.txt с следующим содержанием:

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
C=RU
ST=Moscow
L=Moscow
O=My organization
OU=My department
emailAddress=admin@itarticle.ru
CN = itarticle.ru
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = itarticle.ru
DNS.2 = www.itarticle.ru
DNS.3 = 12.123.123.123

С помощью openssl формируем закрытый ключ и запрос на сертификат с использование подготовленного файла config.txt

openssl req -new -newkey rsa -nodes -keyout private.key -out web.txt -config config.txt 

В ответ получаем два файла private.key (закрытый ключ) и web.txt (запрос на сертификат). Полученный запрос на сертификат необходимо отправить центру сертификации

Понравилось? Расскажи о нас друзьям :)

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

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

18 − пять =