2014-09-04 74 views
0

我正在開發一個自託管的WCF服務有這樣的場景:如何在WCF中吊銷客戶端證書?

wsHttpbinding 
*Transport security layer 
Client Credential = Certificate 

我創建了一個自簽名的根CA證書和「www.server.com」和「www.client.com」證書由RootCA證書頒發。

這是客戶端環境配置: 我需要安裝在受信任的根證書頒發機構存儲在我的商店www.client.com證書的根CA的公鑰。

像這樣一切正常。

但我的問題是,在這種情況下描述MSDN例如www.client.com公鑰不應該在服務器機器的TrustedPeople存儲?因爲如果我想排除客戶端,我應該在服務器端有控制權。 Theres在WCF上的一些配置允許我這樣做?

ps:在上面的MSDN鏈接中,在第一段theres這個報價The server’s certificate must be trusted by the client and the client’s certificate must be trusted by the server.但是,這是行不通的。

回答

1

我認爲,爲了完全控制證書的客戶端身份驗證,您可能需要充分理解證書撤銷過程。以下文章提供了證書撤銷的一個很好的概述,包括驗證鏈和CRL緩存。

http://technet.microsoft.com/en-us/library/ee619754(v=ws.10).aspx

關於WCF配置,您可以訪問控制客戶端證書驗證以下配置值:

X509ClientCertificateAuthentication.RevocationMode 
X509ServiceCertificateAuthentication.CertificateValidationMode 

http://msdn.microsoft.com/en-us/library/system.servicemodel.security.x509clientcertificateauthentication.revocationmode(v=vs.110).aspx
http://msdn.microsoft.com/en-us/library/system.servicemodel.security.x509servicecertificateauthentication.certificatevalidationmode(v=vs.110).aspx

問候。

+0

是的,我知道那些屬性。但是,CertificateValidationMode只適用於消息安全模式,而不適用於傳輸安全模式。 – gog 2014-09-04 13:52:47