2017-06-21 123 views
0

我想爲正在測試的項目設置證書鏈。如何製作不依賴根證書的證書鏈

這將有根證書,那麼證書A,然後證書B等

目前,隨着IM如何設置它,如果我沒有根證書,證書B就不會是有效的。我如何擁有它,證書B不依賴於根證書。

這是我一直在使用的openSSL命令。

創建根證書私鑰: openssl genrsa -out ca.key 4096

創建根證書:openssl req -new -x509 -days 1826 -key ca.key -out ca.crt

創建證書私鑰:openssl genrsa -out ia.key 4096

創建證書請求:openssl req -new -key ia.key -out ia.csr

創建和註冊證書A到根:openssl x509 -req -days 730 -in ia.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ia.crt

對於證書B我做同樣的事情(但更改課程的名稱並簽名到證書A而不是根目錄)。

但是,如果我沒有證書A或根,那麼證書B將無法正常工作。我怎樣才能使證書B不依賴於根證書或證書A?

+0

您的問題尚不清楚。你想問如何驗證沒有根證書的證書鏈?或者生成沒有根的證書? – pedrofb

+0

我想弄清楚如何驗證沒有根證書的證書@pedrofb –

+0

我不確定如果我正確理解問題,請檢查答案 – pedrofb

回答

0

證書使用父證書的私鑰簽名。要驗證數字簽名,您需要父證書的公鑰。因此,您無法驗證沒有根的證書鏈

通常,必須驗證證書的客戶端系統具有包含已接受證書頒發機構根證書的信任庫。還有一個證書用於擁有包含指向父證書的URL的特殊屬性

+0

讓我重新解釋一下。在我的電腦上,可以說我創建了多個證書。我有一個根,一箇中間證書和一個證書。如果我的電腦沒有根證書。如果我將證書或中間證書發送給其他人,則證書顯示該證書無效。有沒有一種方法可以防止這種情況,而不是手動給他們提供根證書文件,例如將兩個證書合併在一起 –

+0

預計您將手動提供根證書給另一方。認證鏈可以包含所有必要的證書(例如以PEM格式),但通常不包含根,並且通過其他方式分發。這可以防止客戶端自動信任證書。客戶端必須擁有一個擁有其實際信任的根證書的信任庫,因此您描述的行爲是預期的行爲 – pedrofb