Проверьте цепочку сертификатов pem с помощью openssl

я пытаюсь написать код, который получает pcap файл в качестве входных данных и возвращает из него недопустимые сертификаты.

я проанализировал цепочки сертификатов и пытаюсь их проверить.
Потому что я получаю цепочки сертификатов из pcap длина цепочки не постоянна (иногда они включают только 1 сертификат, который является самоподписанным (и допустимым)).

пусть cert0.pem быть серверами сертификата и certk.pem корневой сертификат CAs.

согласно моим исследованиям в Интернете, я пытаюсь проверить сертификат следующим образом:

  1. создайте файл certs.pem содержащий цепочку сертификатов в следующем порядке:

    certk.pem,certk-1.pem,... ,cert0.pem

  2. использовать команду (ca.pem - файл, содержащий корневые сертификаты):

    openssl verify -CAfile ca.pem certs.pem 
    

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

C = US, O = GeoTrust Inc., CN = GeoTrust Global CA <br>
error 20 at 0 depth lookup: unable to get local issuer certificate<br> 
error certs.pem: verification failed

пожалуйста, помогите мне, как я могу проверить цепочку сертификатов ?

кроме того, есть ли способ добавить проверку имени хоста в той же строке? (Я попытался добавить"-verify_hostname name" но, опять же, выход был неожиданным).

23
задан usr371
21.01.2023 14:36 Количество просмотров материала 2713
Распечатать страницу

1 ответ

для удаленной проверки сертификата ошибка, о которой Вы упомянули здесь, говорит, что first локальный сертификат (глубина 0) в цепочке файлов, которые вы пытаетесь проверить, а именно быть certk.pem как корневой сертификат CA должен exist / imported в хранилище доверенных сертификатов локального клиента, из которого выполняется проверка.

как указано на thawte.com поддержка сайта:

Это проверка вывода сертификата сервера, отправленного сервером. Сервер отправляет свою полную цепочку, состоящую из 2 сертификатов, один из которых (глубина 0) является сертификатом сервера "CN=www.yourdomain.com" и другой сертификат CA "CN=Thawte Server CA". Как и все корневые сертификаты, этот сертификат является самоподписанным.

Чтобы избежать этой ошибки, ваш клиент должен иметь локальную копию корневого сертификата CA в их доверенном хранилище сертификатов, или в CAfile of CApath.

также можно использовать -show_chain проверить возможность просмотра более подробной информации и / или ошибок в цепочке сертификатов. Обратите внимание, что эта ошибка, как ожидается, и по умолчанию при проверке сертификата от доверенного центра сертификации. Вы можете проверить коды ошибок в OpenSSL wiki.

0
отвечен Hskdopi 2023-01-22 22:24

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

certificate
openssl
security
ssl
ssl-certificate
Вверх