Я пытаюсь написать код, который получает файл pcap
в качестве входных данных и возвращает недействительные сертификаты от него.
Я проанализировал цепочки сертификатов и пытаюсь их проверить.
Поскольку я получаю цепочки сертификатов из pcap
длина цепочки не постоянна (иногда они включают в себя только 1 сертификат, который является подписанным (и действительным)).
Пусть cert0.pem
будет сертификатом сервера, а certk.pem
- сертификатом корневого центра сертификации.
Согласно моим исследованиям онлайн, я пытаюсь проверить сертификат следующим образом:
Создайте файл
certs.pem
который содержит цепочку сертификатов в следующем порядке:
certk.pem
,certk-1.pem
, ...,cert0.pem
используйте команду (
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
», но снова результат был неожиданным).