Выстраиваем и сшиваем цепочку SSL-сертификатов правильно
Цепочка сертификатов SSL включает в себя сертификаты поручителей, подтверждающие валидность документа в целом. Структура CA Bundle имеет такой вид:
- Сертификат домена
- Сертификаты посредников, или промежуточный (Intermediate).
- Корневой сертификат (Root).
Мы выпустили SSL-сертификат для сайта.
Допустим нам предоставили следующие файлы:
domain.crt
- SSL-сертификат сайтаIntermediate2.crt
- Промежуточный SSL-сертификат 2Intermediate1.crt
- Промежуточный SSL-сертификатCARoot.crt
- Корневой SSL-сертификат
Так же у нас уже имелись файлы:
request.csr
- запрос на получение сертификатаprivate.key
- приватный ключ
Правильная цепочка SSL-сертификатов имеет структуру:
1
SSL-сертификат сайта > Промежуточный SSL-сертификат > Промежуточный SSL-сертификат 2 > … > Корневой SSL-сертификат
Создадим из присланных нам файлов правильную цепочку SSL-сертификатов. Открываем терминал и выполняем команду:
1
2
3
$ cd /etc/nginx/ssl
$ sudo su
# cat domain.crt Intermediate1.crt Intermediate2.crt CARoot.crt > domain.ca-bundle
Таким образом мы получили файл domain.ca-bundle
, который содержит правильную цепочку SSL-сертификатов
Проверим. Смотрим хэш-суммы SSL-сертификат сайта, полученного сертификата, приватного ключа и запроса на получение сертификата
1
2
3
4
5
6
7
8
$ sudo openssl x509 -noout -modulus -in domain.crt | openssl md5
(stdin)= b67fe14bdd9336fc9aef28605e69b9a7
$ sudo openssl x509 -noout -modulus -in domain.ca-bundle | openssl md5
(stdin)= b67fe14bdd9336fc9aef28605e69b9a7
$ sudo openssl rsa -noout -modulus -in private.key | openssl md5
(stdin)= b67fe14bdd9336fc9aef28605e69b9a7
$ sudo openssl req -noout -modulus -in request.csr | openssl md5
(stdin)= b67fe14bdd9336fc9aef28605e69b9a7
Авторский пост защищен лицензией CC BY 4.0 .