如何使用openssl验证证书链

扎克詹

我正在尝试使用OpenSSL验证证书文件。您能解释一下为什么s_client连接成功,但是verify具有相同证书链的文件失败吗?如何验证文件?

注意我自己编译了OpenSSL 1.0.1k,它不应该使用任何特定于发行版的配置。CAfile为两个命令都提供了相同的内容

$ openssl s_client -CAfile /etc/pki/tls/certs/ca-bundle.crt -connect www.google.com:443
WARNING: can't open config file: /usr/local/ssl/openssl.cnf
CONNECTED(00000003)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = www.google.com
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
   i:/C=US/O=Google Inc/CN=Google Internet Authority G2
 1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
 2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
    ...
    Verify return code: 0 (ok)
---

如果使用-showcerts参数运行它,它将输出从服务器发送的所有三个证书。我将它们串联成文件google.pem但是该链条无法验证。看:

$ openssl verify -CAfile /etc/pki/tls/certs/ca-bundle.crt google.pem
WARNING: can't open config file: /usr/local/ssl/openssl.cnf
google.pem: C = US, ST = California, L = Mountain View, O = Google Inc, CN = www.google.com
error 20 at 0 depth lookup:unable to get local issuer certificate

应用https://stackoverflow.com/a/27606964/1823988建议的修补程序无济于事。

扎克詹

我找到了。openssl verify不希望证书文件包含其链。链需要与-untrusted参数一起传递它可用于同一文件,但仍然可以通过在中找到受信任的根来确定信任-CAfile

openssl verify -CAfile /etc/pki/tls/certs/ca-bundle.crt -untrusted google.pem google.pem

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用openssl根据CRL验证证书链

来自分类Dev

如何使用openssl验证DER证书?

来自分类Dev

OpenSsl和自签名证书-验证链

来自分类Dev

使用openssl存储和检索证书链

来自分类Dev

如何使用Ruby OpenSSL验证X.509证书?

来自分类Dev

证书链验证

来自分类Dev

如何在树莓派上验证 openssl 证书?

来自分类Dev

使用 openssl 或其他命令查看 PEM 证书文件(完整证书链)中的所有证书

来自分类Dev

如何使用keytool创建证书链?

来自分类Dev

SSL证书链有所不同;如何验证?

来自分类Dev

openssl:如何创建带有私钥,关联的公共证书和证书链一直到根证书的.pem文件?

来自分类Dev

谁在openSSL中验证证书

来自分类Dev

使用Node的HTTPS / TLS与OpenSSL s_client时的不同证书链顺序

来自分类Dev

使用OpenSSL CLI从x509证书获取链或CA颁发者

来自分类Dev

如何使用Shell脚本重新排序证书链?

来自分类Dev

Amazon AWS无法验证thawte证书链

来自分类Dev

从Truststore验证Java中的证书链

来自分类Dev

从Truststore验证Java中的证书链

来自分类Dev

ADFS令牌加密证书链验证失败

来自分类Dev

如何创建自己的证书链?

来自分类Dev

无法针对自签名的openssl证书验证openssl证书?

来自分类Dev

如何使用Capybara跳过SSL证书验证

来自分类Dev

如何使用jmeter启用证书验证

来自分类Dev

如何使用单个命令将证书链中的所有证书导出到单独的.crt文件

来自分类Dev

如何验证链中的所有证书组合在一起以创建对受信任的根CA证书的信任链?

来自分类Dev

如何使用mbedtls验证证书是否验证了密钥?

来自分类Dev

openSSL如何使用SHA256签署证书

来自分类Dev

如何使用OpenSSL从证书中提取所有OID

来自分类Dev

如何使用自签名OpenSSL证书在HTTPS上测试PWA?

Related 相关文章

  1. 1

    使用openssl根据CRL验证证书链

  2. 2

    如何使用openssl验证DER证书?

  3. 3

    OpenSsl和自签名证书-验证链

  4. 4

    使用openssl存储和检索证书链

  5. 5

    如何使用Ruby OpenSSL验证X.509证书?

  6. 6

    证书链验证

  7. 7

    如何在树莓派上验证 openssl 证书?

  8. 8

    使用 openssl 或其他命令查看 PEM 证书文件(完整证书链)中的所有证书

  9. 9

    如何使用keytool创建证书链?

  10. 10

    SSL证书链有所不同;如何验证?

  11. 11

    openssl:如何创建带有私钥,关联的公共证书和证书链一直到根证书的.pem文件?

  12. 12

    谁在openSSL中验证证书

  13. 13

    使用Node的HTTPS / TLS与OpenSSL s_client时的不同证书链顺序

  14. 14

    使用OpenSSL CLI从x509证书获取链或CA颁发者

  15. 15

    如何使用Shell脚本重新排序证书链?

  16. 16

    Amazon AWS无法验证thawte证书链

  17. 17

    从Truststore验证Java中的证书链

  18. 18

    从Truststore验证Java中的证书链

  19. 19

    ADFS令牌加密证书链验证失败

  20. 20

    如何创建自己的证书链?

  21. 21

    无法针对自签名的openssl证书验证openssl证书?

  22. 22

    如何使用Capybara跳过SSL证书验证

  23. 23

    如何使用jmeter启用证书验证

  24. 24

    如何使用单个命令将证书链中的所有证书导出到单独的.crt文件

  25. 25

    如何验证链中的所有证书组合在一起以创建对受信任的根CA证书的信任链?

  26. 26

    如何使用mbedtls验证证书是否验证了密钥?

  27. 27

    openSSL如何使用SHA256签署证书

  28. 28

    如何使用OpenSSL从证书中提取所有OID

  29. 29

    如何使用自签名OpenSSL证书在HTTPS上测试PWA?

热门标签

归档