ClientCredentialType證書驗證模式---- ChainTrust驗證模式
ChainTrust驗證模式使用證書鏈來驗證 X.509證書是否有效以及是否由受信任 的頒發者所頒發。它指定每個證書都必須存在於某個證書層次結構中,而該層次 結構以位於證書鏈頂端的根證書頒發機構結束。它將驗證 X.509證書是否由受信 任的證書頒發機構頒發。通過搜索證書存儲區並確定是否已將該證書頒發機構的 證書指定為受信任的證書,可以做到這一點。為了使 WCF能夠做出此判斷,必須 將證書頒發機構證書鏈安裝在正確的證書存儲區中。
因為 Windows附帶一組默認的用於受信任證書頒發機構的證書鏈,所以可能不 必為所有證書頒發機構安裝證書鏈。
擴展閱讀 X.509的證書鏈說明
crt上有證書持有人的信息、持有人的公鑰、簽署者的簽名。當安裝了一個證 書後,就信任了這份證書。證書上會說明用途,例如服務器認證、客戶端認證, 或者簽署其他證書。當系統收到一份新的證書的時候,證書會說明是由誰簽署的 。如果這個簽署者確實可以簽署其他證書,並且收到證書上的簽名和簽署者的公 鑰可以對上的時候,系統就自動信任新的證書。
在系統開始的時候,會自動安裝信任一些證書機構,這些被稱為根證書機 構(CA)。根證書機構會為其他公司頒發證書,用於各種用途。當然,被簽署的 證書也可能是一份“可簽署證書”,這樣就要檢查對方的資質。這樣 逐層簽署,就會形成“證書鏈”。
設置驗證模式為“ChainTrust”的配置如以下代碼所示。
在服務端設置驗證客戶端憑據模式為“ChainTrust”:
<clientCertificate > <certificate findValue="XuanhunClient" storeLocation="CurrentUser" storeName="My" x509FindType="FindBySubjectName"/> <authentication certificateValidationMode="ChainTrust" trustedStoreLocation="CurrentUser" /> </clientCertificate>
在客戶端設置驗證驗證服務端憑據模式為“ChainTrust”:
<serviceCertificate > <defaultCertificate x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="TrustedPeople" findValue="XuanhunServer" /> <authentication certificateValidationMode="ChainTrust" /> </serviceCertificate>
作者:玄魂
出處:http://www.cnblogs.com/xuanhun/
查看本欄目