我使用pyopenssl生成了一个PEM证书链(CA、中间和叶),我想确认我正确地定义了所有的东西。
以下是我所采取的步骤:
/usr/local/share/ca-certificates (作为crt文件)并运行sudo update-ca-certopenssl s_client -connect localhost:4433 -CApath /etc/ssl/certs --工作得很好,获得了Verify return code: 0 (ok)。Verify return code: 0 (ok)。Verify return code: 24 (invalid CA certificate)此外,我还试着验证了这些证书,得到了以下信息:
$ openssl verify 1-ca.pem
1-ca.pem: OK
$ openssl verify 2-intermediate.pem
2-intermediate.pem: OK
$ openssl verify 3-leaf.pem
C = NL, ST = Amsterdam, L = Zaandam, O = FakeDigiCert, OU = FakeFake, CN = www.fakedigicert.nl
error 24 at 1 depth lookup: invalid CA certificate
error 3-leaf.pem: verification failed为什么一旦服务器的证书离CA超过一步,CA证书就会突然失效?
发布于 2020-07-30 18:26:35
这似乎是一个常见的陷阱,大多数人都会陷入设置https web服务器的状态。您还需要向web服务器提供所有中间证书(通常将叶子和中间pem文件组合成一个pem文件)。因此,当web浏览器访问您的站点时,SSL设置应该从web服务器返回叶子和中间证书。
当您使用-showcerts选项和opensll 客户端命令一起使用时,您可以在提供中间证书的所有网站上看到这一点:
openssl s_client -connect www.example.com:443 -showcertsopenssl 验证命令也是如此。
从医生那里:
-untrusted文件 用于构造从主题证书到信任锚点的证书链的附加不受信任证书(中间颁发者CA)的文件。该文件应包含一个或多个PEM格式的证书。可以多次指定此选项以包括来自多个文件的不受信任证书。
因此,在上面的示例中,您需要这样做:
openssl verify 3-leaf.pem -untrusted 2-intermediate.pemhttps://stackoverflow.com/questions/63177641
复制相似问题