Полезные команды по работе с SSL-сертификатами при помощи OpenSSL

Иногда приходится работать с SSL-сертификатами и каждый раз приходится вспоминать, либо искать информацию как сделать то или иное действие с сертификатами при помощи OpenSSL.

Поэтому решил создать дополняему статью на тему полезных команд по работе с SSL-сертификатами при помощи OpenSSL.

 

Проверка на валидность сертификата

Проверка .pem, .crt — сертификата.
Проверка .key — приватного ключа.
Проверка .csr — ключ запроса сертификата.

MD5 у всех должен совпадать. Важно чтобы MD5 были одинаковые только у приватного ключа (.key) и сертификата (.pem, .crt), .csr нужен в случае если понадобится продлевать данный сертификат.

openssl x509 -noout -modulus -in server.crt | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5
openssl req -noout -modulus -in request.csr | openssl md5

Пример.

root@openssl:~/intermediate# openssl rsa -noout -modulus -in private/server.key | openssl md5
(stdin)= f6647d0867087e0adae0d65d5451a994
root@openssl:~/intermediate# openssl x509 -noout -modulus -in certs/server.crt | openssl md5
(stdin)= f6647d0867087e0adae0d65d5451a994
root@openssl:~/intermediate# openssl req -noout -modulus -in csr/server.csr | openssl md5
(stdin)= f6647d0867087e0adae0d65d5451a994

 

Получение информации по сертификату

Отобразить информацию о сертификате:

openssl x509 -in certificate.crt -text -noout

Проверка RSA закрытого ключа:

openssl rsa -in server.key -check

Отобразить срок действия (даты) сертификата:

openssl x509 -in certificate.crt -noout -dates

 

Для проверки действительности сертификата:

openssl verify -show_chain -CAfile ca_chain.crt certificate.crt

Параметр -untrusted используется для предоставления промежуточных сертификатов, если промежуточных сертификатов несколько и они в отдельных файлах, то нужно указать их все, опцию -untrusted можно использовать несколько раз. Если цепочка сертификатов ЦС находится в одном файле, то нужно использовать параметр -CAfile

Пример успешной проверки:

certificate.crt: OK
Chain:
depth=0: CN = sysos.ru, O = SYSOS (untrusted)
depth=1: O = SYSOS, CN = SYSOS Issuing SubCA
depth=2: CN = SYSOS Issuing RootCA

 

openssl verify -CAfile ca_chain.crt -verify_hostname sysos.ru certificate.crt

Пример успешной и не успешной проверки для указанного хоста (sysos.ru/sysos.com):

openssl verify -CAfile ca_chain.crt -verify_hostname sysos.ru certificate.crt
certificate.crt: OK

openssl verify -CAfile ca_chain.crt -verify_hostname sysos.com certificate.crt
O = SYSOS, CN = sysos.ru
error 62 at 0 depth lookup: Hostname mismatch
error certificate.crt: verification failed

 

Операции с сертификатом

Создать PFX сертификат

openssl pkcs12 -export -out certificate.pfx -inkey certificate.key -in certificate.crt -passout "pass:P@ssword"

если необходимо включить CA сертификат в .pfx, то делается это так:

openssl pkcs12 -export -out certificate.pfx -inkey certificate.key -in certificate.crt -certfile ca.crt -passout "pass:P@ssword"

 

* статья будет дополнятся по мере необходимости. В комментариях можете предложить чем можно дополнить полезным, дополним.

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

Оставьте комментарий

13 + 15 =