Конвертация серверного сертификата из pfx в pem

openssl pkcs12 -in yourpfxfile.pfx -nocerts -out privatekey.pem -nodes
openssl pkcs12 -in yourpfxfile.pfx -nokeys -out publiccert.pem -nodes

Конвертация клиентского сертификата из PKCS12 в pem

openssl pkcs12 -in anisimov.ss@sberleasing.ru.p12 -out ca.pem -cacerts -nokeys
openssl pkcs12 -in anisimov.ss@sberleasing.ru.p12 -out client.pem -clcerts -nokeys
openssl pkcs12 -in anisimov.ss@sberleasing.ru.p12 -out key.pem -nocerts

Удалить пароль с ключа

Чтобы сделать приватный ключ доступным без ввода пароля:

openssl rsa -in key.pem -out key_nopasswd.pem

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

openssl verify -verbose -x509_strict -CAfile ./chain.pem ./cert.pem

или если в файле вся цепочка:

openssl verify -verbose -x509_strict -CAfile ./fullchain.pem ./fullchain.pem

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

openssl s_client -connect wiki.autosys.tk:443 -CAfile /etc/ssl/certs

или можно и не указывать путь до CA:

openssl s_client -connect wiki.autosys.tk:443

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

echo | openssl s_client -servername server.domain.local -connect host.domain.local:443 2>/dev/null | openssl x509 -noout -dates

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

openssl x509 -enddate -noout -in ./cert.crt

Скачать сертификат сервера в файл

openssl s_client -showcerts -connect ya.ru:443 </dev/null > chain.pem

Чтобы получить полную цепочку сертификатов сервера без всяких ненужных текстовых данных (только то что между строками

-----BEGIN CERTIFICATE-----

и

-----END CERTIFICATE------

делаем так:

openssl s_client -showcerts -connect nexus.rdleas.ru:443  </dev/null 2>/dev/null | awk '/BEGIN/ { i++; } /BEGIN/, /END/ { print }' > clean_chain.pem

Посмотреть сертификаты сервера

Для сервера с SNI (указывая име сервера с помощью -servername):

openssl s_client -showcerts -servername www.example.com -connect www.example.com:443 </dev/null

Без SNI:

openssl s_client -showcerts -connect www.example.com:443 </dev/null

А посмотреть содержимое серта в удобном виде так:

openssl s_client -servername www.example.com -connect www.example.com:443 2>/dev/null | openssl x509 -text

Проверить соответствие ключа и сертификата

Должны совпадать значения хешей md5:

openssl x509 -noout -modulus -in <filename>.cert.pem | openssl md5
openssl rsa -noout -modulus -in <filename>.key | openssl md5

И для CSR:

openssl req -noout -modulus -in .csr | openssl md5
Enter your comment. Wiki syntax is allowed:
A P Y O Y
 
  • linux_faq/openssl_hints.txt
  • Last modified: 2021/02/09 17:31
  • by admin