2010-10-22 171 views
2

有什麼辦法可以將我們自己生成的密鑰對與已鏈接到根CA(例如:verisign)的現有證書鏈接起來?基本上,我的問題是在圖下方如何鏈接SSL證書

Verisign Root CA 
    | 
    --> Company XYZ certificate 
        | 
        ---> Server foo certificate 

描述一旦我生成服務器foo的密鑰對,我怎麼跟公司XYZ證書鏈呢?

+1

不,你不能這樣做。 Verisign和其他根CA不會向可以創建其他證書的公衆頒發證書 - 這會破壞根證書信任的整個點。 – 2010-10-22 15:12:15

+1

沒有技術上的原因,爲什麼商業CA不應該簽署企業CA的根證書,以便企業可以頒發自己的證書。這樣的證書需要具有用於密鑰簽名的正確使用屬性。由於其CA證書由商業CA簽署,所以企業的證書將被信任。這正是PKI信任鏈應該如何工作的方式。然而,商業上的原因爲什麼很少這樣做(大量的身份證明比一次簽名證書賺錢更多)。 – dajames 2010-10-26 11:55:17

回答

4

如果公司XYZ有Intermediate Certificate Authority證書,那麼你可以。這種證書由根CA授權頒發新證書,並且這是在創建時由特定屬性(基本約束,密鑰使用,增強密鑰使用)確定的。

但是,如果XYZ公司有正規的證書,例如用於識別網站,電子郵件用戶或軟件開發人員,這是不可能的。即使在實踐中認爲沒有什麼能阻止你創建一個新的證書並且用另一個簽名(如果你有私鑰的話),我認爲你不會獲得一個有效的證書。

所以,如果你有合適的證書,你將不得不簽署foo。您可以使用makecertopen ssl來創建新的X509 Certificate。例如:

makecert -pe -n "CN=foo" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in "Company XYZ" -is my -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -ss my -sr LocalMachine

你需要有安裝在Windows證書存儲在本地計算機/個人位置的XYZ公司的證書。生成的證書將被添加到同一個地方,您將能夠以各種格式(.pfx,.cer,.p7b)從那裏導出它。這也爲新證書創建了密鑰對。

1

如果您有兩個證書,請嘗試連接證書文件。如果不是,請修改您的問題,以便我們知道您在此過程中的位置。

如果您在Apache服務器上設置它,請參閱mod_ssl的SSLCertificateChainFile指令。