我尝试了以下命令来获取证书并将其保存为文本文件:
openssl s_client -connect www.domain.com:443 -showcerts > file.txt
然后我使用以下方法获取公钥:
openssl x509 -noout -modulus -in file.txt
我得到的公钥是与1号证书关联的公钥。我该怎么做才能获得全链公钥?是否有更好的方法可以用来改进我正在做的事情(即:是否有一种方法可以一步获得整个证书链的公钥,而不是我正在做的两个步骤)。
来自
openssl s_client -connect www.domain.com:443 -showcerts > file.txt
您将获得您所描述的证书列表。如果将这些证书复制到名为 cert1.pem、cert2.pem 等的文件中,其中每个证书如下所示:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
然后您可以像这样打印链中每个证书的公钥:
openssl x509 -in cert1.pem -noout -pubkey
openssl x509 -in cert2.pem -noout -pubkey
...
“无法理解 SSL 证书链验证”问题涉及获取证书链的想法。也许值得一看。
不过,我自己还没有解决此类问题。 :)