2013-08-06 72 views
2

我從子CA具有以下證書路徑發給我一個證書:爲什麼我的證書無效,除非我將Sub CA證書放在受信任的根證書頒發機構中?

Root CA 
    Sub CA 
     My Certificate 

爲什麼,當我嘗試用X509Chain.Build()來驗證它,我總是需要有子CA在我受信任的根證書頒發機構文件夾中爲它返回true?我已經有了根CA證書,因爲我信任根,作爲一個信任網,它是否也應該信任子CA?因爲現在,它說它不能建立鏈接到受信任的根證書頒發機構,除非我將Sub CA證書添加到我的受信任的根證書頒發機構。

+3

當試圖建立鏈,你從哪裏讀取證書?如果您從文件中讀取,中間(Sub)CA是否也存在於文件中?如果沒有,.NET怎麼知道它呢? –

+0

@ ErikA.Brandstadmoen - 我從本地計算機的證書存儲中讀取它。子CA也不在該文件中。我將如何處理將子CA證書和子CA頒發給我的最終用戶證書? – Alexandru

+1

如果您在證書商店中擁有最終用戶證書,則子驗證證書也需要位於證書商店中,因爲gtrig會在下面的答案中寫入。但是,它不需要位於可信ROOT CA列表中。 –

回答

3

要詳細說明Erik的評論,信任根CA證書意味着您將信任根CA直接簽署的內容。

如果您在中間有一箇中間子CA,其證書由根CA簽署,並且子CA直接簽署您的證書。

Root CA ---signs/verifies---> Sub CA ---signs/verifies---> End user certificate

正如埃裏克說,如果你不具備子CA證書存在,那麼有沒有辦法到根CA鏈接到最終用戶證書。 Root可以驗證Sub CA證書,並且Sub CA可以驗證最終用戶證書,但Root無法跳過Sub CA並驗證最終用戶證書,因爲根沒有簽署最終用戶證書。

2種方法來解決此是:

  • 在您信任的證書子CA證書或
  • 確保子CA證書是包含在這樣一個鏈條 可以建立最終用戶證書。
+1

我將如何處理包含帶有最終用戶證書的子證書頒發機構證書? – Alexandru

+0

您的證書存儲格式是什麼? p12,pfx,別的東西? – gtrig

相關問題