SSL证书链捆绑是如何排列的?

问题描述 投票:0回答:2

我有4个这样的证书文件:

1.certum_certificate.crt
2.certum_certificate.pem
3.Intermediate_CA2.cer
4.Intermediate_CA.cer
5.Root_CA.cer

我将这些文件内容按此顺序放入捆绑文件中,我发现我的 SSL 链不完整。 我应该如何将它们排列在捆绑文件中?

ssl https devops tls1.2
2个回答
1
投票

只需将这三个部分连接成一个文件,如下所示 (

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 —>...


0
投票

为了形成证书链,您需要知道您的证书在链中的信任顺序。

只需将单个证书的内容按照正确的顺序追加即可形成证书链文件。 链中的顺序从您的服务器证书开始,然后是中间证书,最后是根证书。

例如,我们有以下证书颁发者链

那么链证书文件的内容应该是这样的:

-----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
发行的。

© www.soinside.com 2019 - 2024. All rights reserved.