我有4个这样的证书文件:
1.certum_certificate.crt
2.certum_certificate.pem
3.Intermediate_CA2.cer
4.Intermediate_CA.cer
5.Root_CA.cer
我将这些文件内容按此顺序放入捆绑文件中,我发现我的 SSL 链不完整。 我应该如何将它们排列在捆绑文件中?
只需将这三个部分连接成一个文件,如下所示 (
fullchain.pem
) :
-----BEGIN CERTIFICATE-----
MIIFKTCCBBGgAwIBAgISA/UUyBjJ71fucZuvpiLsdfsfsdfsdfd
...
hoFWWJt3/SeBKn+ci03RRvZsdfdsfsdfw=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinsdfsfsdfsdfdsfsdfsd
....
nLRbwHqsdqD7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCBsdfSDFSDFVSDVzfsdffvqdsfgsT664ScbvsfGDGSDV
...
Dfvp7OOGAN6dEOM4+SDFSDZET+DFGDFQSD45Bddfghqsqf6Bsff
-----END CERTIFICATE-----
顺序必须倒着。发件人的证书必须位于列表中的第一位。以下每个证书必须直接证明其前一个证书:
Original issuer —> Intermediate issuer 1 —> Final Root issuer
,这是根证书颁发机构,可以信任。
可以有多个中间体:
...—> Intermediate issuer 1 —> Intermediate issuer 2 —>...
为了形成证书链,您需要知道您的证书在链中的信任顺序。
只需将单个证书的内容按照正确的顺序追加即可形成证书链文件。 链中的顺序从您的服务器证书开始,然后是中间证书,最后是根证书。
例如,我们有以下证书颁发者链
那么链证书文件的内容应该是这样的:
-----BEGIN CERTIFICATE-----
[Your Server Certificate]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Intermediate Certificate L1]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Intermediate Certificate L2]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Root Certificate]
-----END CERTIFICATE-----
回到你的问题,我认为问题链顺序是
certum_certificate <--(Issued by)-- Intermediate_CA <--(Issued by)-- Intermediate_CA2 <--(Issued by)-- Root_CA
那么您的订单是
(certum_certificate.crt content)
(Intermediate_CA.cer content)
(Intermediate_CA2.cer content)
(Root_CA.cer content)
如果您的证书文件名全部混淆并且您不确定颁发顺序,只需使用
openssl
查看证书即可显示该证书的 issuer。
例如
openssl x509 -noout -text -in '委托证书颁发机构 - L1K.crt'
我们可以推断
Entrust Certification Authority - L1K
是由Entrust Root Certification Authority - G2
发行的。