SSL证书:如何设置CA来处理证书链?

时间:2013-12-21 00:10:05

标签: ssl openssl certificate ssl-certificate

我有一个PKI层次结构,如下所示。

root-ca ---> signing-ca ---> sub-ca-1 ---> server-cert-1  (machine 1)
                 \
                  \--------> sub-ca-2 ---> server-cert-2  (machine 2)

我想知道如何在每台机器上设置CA.例如,我在机器1上创建了一个包。

$ cat sub-ca-1.pem signing-ca.pem root-ca.pem > cas-1.pem

cas-1.pem可以验证server-cert-1,但无法验证server-cert-2。 因此,如果机器1和2需要相互认证,它将失败。

逻辑上,我认为正确的方法是机器1(和2)的证书应该占用sub-ca,CA应该从签署ca开始到root-ca(如下所示)。

$ cat server-cert-1.pem sub-ca-1.pem > server-1.pem
$ cat signing-ca.pem root-ca.pem > cas.pem

但是当我验证时,它失败了。

$ openssl verify -CAfile cas.pem server-1.pem

我不确定其他SSL程序如何验证证书。

无论如何,在这种情况下,如何在每台机器上设置CA和证书,以便验证可以通过。

非常感谢。

1 个答案:

答案 0 :(得分:2)

将root-ca或signed-ca添加到客户端上的CA存储(例如,可信CA列表)应该足够了。在ssl握手期间,服务器需要发送链的其余部分,以便客户端可以将证书验证到可信CA.