2009-03-05 125 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

相关问题