openssl verify дает мне код ошибки 20, тогда как s_client дает мне код возврата 1 и правильно получает корневой сертификат.
Может ли кто-нибудь указать мне, как проверить загруженный сертификат?
ychaouche@ychaouche-PC 10:30:22 ~/TMP/CERTS $ openssl s_client -CApath /etc/ssl/certs/ -connect domain.tld:993
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = domain.tld
verify return:1
---
Certificate chain
0 s:/CN=domain.tld
i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
i:/O=Digital Signature Trust Co./CN=DST Root CA X3
и проверить
ychaouche@ychaouche-PC 10:30:30 ~/TMP/CERTS $ openssl verify -CApath /etc/ssl/certs/ domaintld.crt
domaintld.crt: CN = domain.tld
error 20 at 0 depth lookup:unable to get local issuer certificate
ychaouche@ychaouche-PC 10:31:21 ~/TMP/CERTS $
РЕДАКТИРОВАТЬ : нашел ответ на SO: https://stackoverflow.com/questions/28072021/discrepancy-between-openssl-verify-and-s-client-command
Я не знаю, что лучше: просто удалить этот вопрос или закрыть и добавить дублирующую ссылку на SO? (для других людей, ищущих по SF).
На это уже был дан ответ на SO. Из https://stackoverflow.com/questions/28072021/discrepancy-between-openssl-verify-and-s-client-command
openssl verify
не ожидает, что сертификат будет содержать свою цепочку. Цепь нужно передать с помощью-untrusted
аргумент. Вы можете передать туда тот же файл, доверие по-прежнему определяется путем нахождения доверенного корня в-CAfile/-CApath
.openssl verify -CApath /etc/ssl/certs -untrusted google_chain.pem google_chain.pem