2012-02-27 145 views
0

我必須檢查特定的證書。不幸的是,我不知道我能做到這一點。我想要驗證的證書是由我自己的ca簽署的。我需要檢查整個證書鏈。驗證應該在C#中完成。WCF中的證書驗證

親切的問候, 邁克爾·如果你想要做的一切,包括在代碼中鏈的驗證

+0

你沒有安裝證書和根證書的任何原因成證書商店? – Yahia 2012-02-27 12:16:43

+0

已經安裝了root證書。但我需要根據具體的證書來驗證證書。對整個商店的驗證是不希望的。 – user1168876 2012-02-27 12:19:58

+0

這是一個非常敏感的區域,自我執行整個支票時出現一些錯誤/處理不當可能會導致嚴重的安全問題...恕我直言,「不願意」不足以作爲保證更高風險的理由... – Yahia 2012-02-27 12:22:01

回答

1

那麼你需要implement "custom validation" and integrate that into the WCF Host

Client.ServiceCertificate.Authentication.CertificateValidationMode = 
       X509CertificateValidationMode.Custom; 
Client.ServiceCertificate.Authentication.CustomCertificateValidator = 
    new MyCertificateValidator(); 

對於自己驗證鏈,你應該看一看在X509ChainX509Store - 瞭解如何實施這樣的鏈式驗證可以看看VerifyMono's implementation ......基本上,您可以使用Find方法來搜索X509Certificate2Collection對於家長等...驗證標準與自定義驗證由您決定(有效簽名,未過期...)。

在MSDN一些參考鏈接: