2009-03-05 139 views
2

此問題全部是關於解決SslPolicyError.RemoteCertificateNotAvailable錯誤。TCP服務器上的SslStream無法通過RemoteCertificateNotAvailable驗證客戶端證書

我開發了一個帶有SSLStream的TCP服務器和另一端的TCP客戶端。

我驗證與服務器:

sslStream.BeginAuthenticateAsServer 

我驗證客戶端:

sslStream.BeginAuthenticateAsClient 

我從Trusted Publishers - Local Machine我加載客戶證書。

兩者都在同一臺機器上運行。

我嘗試從.cer和.pfx文件而不是受信任的發佈者商店加載客戶端證書。但服務器的客戶端(遠程)證書驗證器回調失敗,發現SslPolicyErrorsRemoteCertificateNotAvailable錯誤。

回答

4

鏈接沒有來過,但有我可以用statment發現了一個問題:

「我裝我的客戶證書由受信任的發佈者」

客戶端證書通常生活在一個個人存儲一個用戶帳戶。與服務器證書一樣(但它們可能與它們有不同的「目的OID」,但是 - 「客戶端身份驗證」與「服務器身份驗證」相比)。我認爲,在受信任的發佈商商店中獲得帶有私鑰的證書是很奇怪的。

如果您雙擊CertMgr.msc中的客戶端或服務器證書,您應該會看到底部顯示「此證書具有私鑰」消息。

如果你不這樣做,你只有一半密鑰對 - 加密和認證需要私鑰。服務器證書需要服務器端的私鑰,客戶端證書需要客戶端的私鑰。

+0

我也嘗試從「個人」商店加載證書。 我的證書確實有私鑰。 – cdpnet 2009-03-06 03:17:58

相關問題