假设我从一个证书开始。
使用 openssl 我可以像这样打印出来:
openssl x509 -in cert.pem -text -noout
我将得到一些输出,例如Validity
,Issuer
以及Subject
以及。Authority Key Identifier
Subject Key Identifier
我如何使用这些字段来找出链中的下一个证书?
然后,一旦我获得下一个证书,就确定下一个证书应该是什么等等。
基本上,我想找出完整的链条,并让 EC2 负载均衡器按照正确的顺序运行。因为 Network Solutions 似乎不只是给你一个可以工作的捆绑包。他们给你单独的证书,我试了很多不同的 EC2 排序方法,但仍然没有成功。我最后的选择是尝试 openssl 并手动解决这个问题,而不是猜测。
答案1
子密钥的输出将X509v3 Authority Key Identifier
与签名密钥的匹配。openssl
X509v3 Subject Key Identifier
例如,对于此站点的 SSL 证书及其父证书:
# openssl x509 -text -noout -in subject.pem
...
Subject: C=US, ST=NY, L=New York, O=Stack Exchange, Inc., CN=*.stackexchange.com
...
X509v3 Authority Key Identifier:
keyid:51:68:FF:90:AF:02:07:75:3C:CC:D9:65:64:62:A2:12:B8:59:72:3B
X509v3 Subject Key Identifier:
5A:C1:42:63:C2:62:13:B3:9D:94:84:AA:32:1E:17:CB:6D:A3:86:7B
# openssl x509 -text -noout -in parent.pem
...
Subject: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert SHA2 High Assurance Server CA
...
X509v3 Subject Key Identifier:
51:68:FF:90:AF:02:07:75:3C:CC:D9:65:64:62:A2:12:B8:59:72:3B
X509v3 Authority Key Identifier:
keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
51:68:FF:90:AF:02:07:75:3C:CC:D9:65:64:62:A2:12:B8:59:72:3B
是在子证书上建立的什么证书对其进行了签名,您应该能够使用它来找到正确的颁发机构证书。
答案2
需要注意的是,中间证书并不特定于您的域或证书。因此,每个与您的证书类似的证书都具有完全相同的中间证书。
你可以把它们想象成支票上的路由号码。路由号码是必需的,但它实际上更多地反映了你的银行信息,而不是你的信息。你的帐号,或者在这种情况下是你的证书,是你的唯一身份。
由于中级证书的通用性质,有如下网站:
https://www.ssl2buy.com/wiki/ssl-intermediate-and-root-ca-bundle
所有中间证书均已预先捆绑(并按正确的顺序)给不同的证书颁发者。