gpt4 book ai didi

TCP 服务器上的 SslStream 无法使用 RemoteCertificateNotAvailable 验证客户端证书

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:31 24 4
gpt4 key购买 nike

这个问题是关于解决 SslPolicyError.RemoteCertificateNotAvailable 错误。

我开发了一个带有 SSLStream 的 TCP 服务器和一个用于另一端的 TCP 客户端。

我通过以下方式对服务器进行身份验证:

sslStream.BeginAuthenticateAsServer 

我对客户端进行身份验证:

sslStream.BeginAuthenticateAsClient

我正在从 Trusted Publishers - Local Machine 加载我的客户端证书。

两者都在同一台机器上运行。

我尝试从 .cer 和 .pfx 文件而不是受信任的发布者存储加载客户端证书。但是服务器的客户端(远程)证书验证器回调失败,因为发现 SslPolicyErrors 有一个 RemoteCertificateNotAvailable 错误。

最佳答案

链接没有通过,但我可以从声明中发现一个问题:“我从 Trusted Publishers 加载了我的客户端证书”

客户端 证书(即在增强型 key 使用字段中包含客户端身份验证 的证书)通常位于用户帐户的个人 存储区中。您始终需要证书的私钥才能“成为”该证书的实体。

服务器 证书相同(虽然它们具有不同的预期目的 OID,但 - 服务器身份验证)。我认为,Trusted Publishers 商店中有带有私钥的证书对您来说很奇怪。

如果您双击 CertMgr.msc 中的客户端或服务器证书,您应该会在底部看到一条This certificate has a private key类型的消息。

如果不这样做,您只有半个 key 对 - 签名和身份验证需要私钥。 (服务器证书需要服务器端的私钥,客户端证书需要客户端的私钥。)

关于TCP 服务器上的 SslStream 无法使用 RemoteCertificateNotAvailable 验证客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com