3 回答

TA貢獻1803條經驗 獲得超6個贊
這些CA準則有點誤導。@EJP正確地表示您不應該使用-trustcacerts您的證書。
另外,此CA文檔建議在單獨的操作中導入主要和中間CA證書,這將為您提供如下結果:
primaryca, Jul 26, 2014, trustedCertEntry,
Certificate fingerprint (SHA1): <snip>
secondaryca, Jul 26, 2014, trustedCertEntry,
Certificate fingerprint (SHA1): <snip>
tomcat, Jul 26, 2014, PrivateKeyEntry,
Certificate fingerprint (SHA1): <snip>
不幸的是,像這樣將CA證書導入您的密鑰庫中是沒有意義的。(在信任庫中很有用,但是您使用的CA可能已經在默認信任庫中。)
實際上,在密鑰庫中具有用于證書的CA證書很有用,以便在需要中間證書時提供完整的證書鏈。但是,即使密鑰管理器(除非是自定義實現)也不會為您建立鏈,即使它在您的最終實體證書(在PrivateKeyEntry中)旁邊找到合適的CA證書也是如此。
您需要針對私鑰所在的條目將這些證書作為鏈一起導入。為此,將證書合并到一個文本文件(PEM編碼)中,首先是服務器證書,然后是用于頒發證書的證書,依此類推。然后,使用該私鑰別名將該文件導入您的密鑰庫。(這與該問題完全相同,但是具有服務器證書。)
(我不確定您的CA是否已將您的證書文件作為一個鏈條提供,但是通常,您至少在一個文件中獲得證書,而在另一個文件中獲得中級CA證書。您鏈接到的文檔似乎具有誤導性,因為它們兩者之間的間隔不超過一個--BEGIN/END CERT--,但不知何故,他們的示例屏幕截圖針對該單個別名的證書長度為4。)
正如@jww在對您的問題的評論中所指出的那樣,您不需要此鏈中的“根” CA證書(自簽名證書),因為您的客戶已經信任它,或者它沒有理由發送時請信任它。在您的鏈中擁有它并沒有錯,但這是沒有意義的,并且可能會增加一些網絡開銷。
添加回答
舉報