2013-12-21 192 views
1

我有一個像下面這樣的PKI層次結構。SSL證書:如何設置CA來處理證書鏈?

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可以驗證服務器-CERT-1,但它不能驗證服務器證書-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和證書以便驗證可以通過。

非常感謝。

+0

驗證的機器應該只需要root-ca。試圖證明自己身份的機器應該擁有一系列證書,從證書到根除ca。驗證機器的root-ca需要防止被篡改,並且驗證機器的私鑰需要保密。 – erickson

+0

謝謝,我會試試看。 – user180574

回答

2

它應該足以將root-ca或signing-ca添加到客戶端上的CA存儲(例如,可信CA的列表)。在ssl握手過程中,需要由服務器發送其餘鏈,以便客戶端可以驗證證書直至可信CA.