Как я могу проверить сертификаты SSL в командной строке?


52

Я пытаюсь проверить / подтвердить, что ключ rsa, ca-bundle и сертификат, хранящиеся здесь, в порядке. Они не обслуживаются веб-сервером. Как я могу их проверить?


Посмотрите на openssl x509раздел руководства.
Алекс

Руководство по проверке OpenSSL может помочь вам здесь. Также на этой странице есть несколько отличных примеров.
Стефан Ласевский

Ответы:


61

Предполагая, что ваши сертификаты в формате PEM, вы можете сделать:

openssl verify cert.pem

Если ваш "ca-bundle" является файлом, содержащим дополнительные промежуточные сертификаты в формате PEM:

openssl verify -untrusted ca-bundle cert.pem

Если ваш openssl не настроен на автоматическое использование установленного набора корневых сертификатов (например, в /etc/ssl/certs), вы можете использовать -CApathили, -CAfileчтобы указать CA.


9
Внимание, команда openssl verify является более допустимой, чем вы могли ожидать! По умолчанию, в дополнение к проверке данного CA-файла, он также проверяет наличие подходящих CA в системном каталоге certs, например / etc / ssl / certs. Чтобы предотвратить такое поведение и убедиться, что вы проверяете свой конкретный сертификат CA, предоставленный CAfile, вы также должны передать опцию -CApath с несуществующим каталогом, например: openssl verify -verbose -CApath nosuchdir -CAfile cacert.pem server .crt
DSimon

2
Еще одно предостережение: если вы используете, -CApath nosuchdirто комбинация server.crt и cacert.pem должна включать корневой CA; если openssl может работать только с промежуточным CA с этими файлами, то он будет жаловаться.
DSimon

Это говорит, что нет такого файла в /certs/. это вызовет проблемы? потому что я застрял в ситуации, когда мой сервер работает, http curl работает, но https .. curl получает ошибку. где сайт перестал работать.
Гиорги Гвимрадзе

18

Вот одна строка для проверки цепочки сертификатов:

openssl verify -verbose -x509_strict -CAfile ca.pem -CApath nosuchdir cert_chain.pem

Это не требует установки CA в любом месте.

См. Https://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-bundle-work для получения подробной информации.


1
Предупреждение, опция -CAfile является более допустимой, чем вы могли бы ожидать. Смотрите мой комментарий о принятом ответе для деталей.
DSimon

1
@DSimon, я добавил -CApath nosuchdirэто, чтобы ответить. Спасибо.
Вадим

Нет проблем, рад помочь. :-) Одна оговорка, которую я выяснил после публикации моего предыдущего комментария: если файл, указанный с помощью -CAfile, сам является просто промежуточным сертификатом, то openssl будет жаловаться. Это правильное поведение, поскольку verifyтребует полной цепочки вплоть до корневого ЦС, но может вводить в заблуждение.
DSimon

2
Моя версия ( OpenSSL 1.1.1 11 Sep 2018) требует, чтобы аргумент -CApathбыл существующим каталогом.
Джейк Кобб
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.