簡體   English   中英

X509商店位置與商店?

[英]X509Store Location versus Store?

我正在C#DotNet中使用X509Store遍歷證書存儲。 但是,我不清楚證書位置和證書存儲之間的區別。 例如,位置是LocalUser和LocalMachine。 商店的示例是“我的(個人)”和“根”。 LocalMachine上的個人商店與LocalUser上的個人商店有什么區別? 在LocalMachine上開設個人商店甚至意味着什么?

有一些專用的商店(C#名稱為粗體,UI顯示名稱為斜體):

  • 我的個人 ):在搜索葉子/實體證書時,通常會搜索該商店。 通常,這是唯一具有證書和相關私鑰的商店。
    • 如果您使用客戶端身份驗證證書瀏覽到站點,則IE將從“我的商店”中選擇候選證書。 (前瞻性參考:此位置為CurrentUser)
    • 從GUI配置IIS時,它將顯示“我的商店”中的證書。 (前瞻性參考:此位置是LocalMachine)
  • 受信任的根證書頒發機構 ):在進行鏈式信任決策時(例如在TLS中),如果鏈的另一端在此存儲中表示,則原始證書將受到信任。
    • 除了此存儲中顯式的證書之外,它還通過AuthRoot公開虛擬視圖。
  • AuthRoot第三方根證書頒發機構 ):出於其他原因,“應該”在第三方存儲中注冊其他受信任的根嗎? 雖然LocalMachine一個似乎可以正常運行,但CurrentUser一個似乎主要用於show
  • CertificateAuthority中間證書頒發機構 ,稱為基礎系統的“ CA”):這是已知中間證書的存儲庫。 進行鏈式構建時,系統將在此處,在Root中然后可能在Internet上尋找父級。 如果該鏈是可信賴的,則可以將鏈中間的證書緩存在此處以供將來查找。
  • 不允許不可信證書 ):如果在此存儲中找到了證書鏈的一部分,則該鏈被認為是不可信的。
  • 地址簿其他人 ):您知道的證書的集合。 是的,關於具體。 嘗試匹配對等證書時,某些程序/庫會對其進行搜索。 例如,SignedXml中的按發行人和序列號查找通知。

還有更多其他標准的,您可以在TechNet上閱讀它們 您還可以使用X509Store(string, StoreLocation)重載來創建自己的證書存儲。 (它有時對管理應用程序很有用,但是當您在自定義存儲區中擁有私鑰時,證書管理器UI會有些混亂;它僅在“我的存儲區”中才需要)。

這就是StoreName。 最好將StoreLocation視為“商店所有者”。 標准用戶可以確定他們信任某個私有CA頒發的證書,因此可以將其添加到其根存儲中。 由於是他們的商店,因此不會影響系統上的任何其他用戶。 系統本身也擁有商店。 例如,計算機的TLS證書確實屬於“計算機”,並且可能需要多個管理員來管理它。 由於搜索朋友的東西是非常不尋常的,因此StoreLocation會歸結為要使用哪個商店的“我作為用戶我”(CurrentUser)或“這台計算機”(LocalMachine)。

現在事情變得有些模糊:在Windows上,幾乎每個CurrentUser存儲(My商店都有一個明顯的例外)都將視圖公開到LocalMachine等效存儲中。 因此,當枚舉CurrentUser \\ Root中的證書時,您要獲得明確添加到CurrentUser \\ Root中的證書,也要獲得明確添加到LocalMachine \\ Root中的證書。 這會引起混亂,因為您可以在枚舉時看到證書, Remove其作為參數調用Remove ,並且再次枚舉時該證書仍然存在。

以我的經驗,大多數與證書存儲庫的交互都是在“我的存儲庫”中進行的。 此時,決策樹可歸結為以下內容:

  • 我是否具有專用用戶帳戶的服務?
    • new X509Store(StoreName.My, StoreLocation.CurrentUser)
  • 如果沒有專用的用戶帳戶,是否可以提供服務?
    • new X509Store(StoreName.My, StoreLocation.LocalMachine)
  • 其他
    • new X509Store(StoreName.My, StoreLocation.CurrentUser)

但這是一個很大的概括。

LocalMachine的個人存儲區包含機器證書。 此類存儲中存在的證書的一個示例是IIS用於保護HTTP通信的SSL證書。 機器上只有一個這樣的存儲。

LocalUser的個人存儲中包含用戶證書。 這種證書的一個示例是用於簽名電子郵件的S / MIME證書。 每個用戶都有自己的這種類型的商店。

暫無
暫無

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

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