簡體   English   中英

信任存儲在c#中“受信任的根證書頒發機構”中的SSL證書

[英]Trusting SSL certificates stored in “Trusted Root Certification Authorities” in c#

內容:

我正在嘗試使用ADFS SSO進行試驗,並按照本教程的要求首先連接到Azure AD:

http://www.cloudidentity.com/blog/2013/10/25/securing-a-web-api-with-adfs-on-ws2012-r2-got-even-easier/

那行得通。

然后,按照此其他教程,嘗試使其連接到Win Server 2012 R2上的ADFS:

http://www.cloudidentity.com/blog/2013/10/25/securing-a-web-api-with-adfs-on-ws2012-r2-got-even-easier/

就像他們在第3篇教程中所說的那樣: https : //msdn.microsoft.com/en-us/library/dn660967.aspx

我收到SSL證書錯誤:

在此處輸入圖片說明

問題:

我知道我可以繞過證書驗證或在ServicePointManager.ServerCertificateValidationCallback中添加特殊邏輯以對此進行編碼,但是由於我將證書導入本地計算機“受信任的根證書頒發機構” ...:

  1. ...為什么我的服務仍在抱怨該證書?

  2. ...是否可以告訴我的C#服務在“受信任的根證書頒發機構”商店中接受所有證書?

注意:我確實實現了ServicePointManager.ServerCertificateValidationCallback,並且可以正常工作,但是由於我們將獲得一大堆向其發送ADFS證書的客戶端,因此我只需要將其證書導入證書存儲區即可使我們的服務信任他們。

謝謝

您應該將根證書放入“受信任的根證書頒發機構”存儲中(而不是證書本身)。 如果您打開證書並轉到證書路徑,則可以查看根證書。

為了進一步解釋這一點:

每個證書都有一個頒發者,並且該頒發者也有一個證書。

通常,頒發者是證書頒發機構(CA)。

(CA的)此類證書可以由CA自身(自簽名)或另一個父CA進行簽名。

因此,您在這里有父母/子女關系。 根證書是根頒發者的證書,即,該證書是自簽名的父母/祖父母。

認證路徑選項卡

在此示例中,管理員證書由CA簽名。 CA證書是自簽名的。 在這種情況下,您需要將CA證書安裝到“受信任的根證書頒發機構”存儲中。

在證書驗證中,還有其他因素也起作用。 例如,證書具有有效期數據,之后將被視為無效數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM