gpt4 book ai didi

c# - 使用 IPv6 地址信任 SSL 证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:04:40 25 4
gpt4 key购买 nike

我有一个 IIS 应用程序,它具有使用自签名证书的 HTTPS 绑定(bind)。该证书包含服务器主机名、IPv4 地址和 IPv6 地址的 DNS 名称。我已经在本地计算机的受信任的根证书颁发机构文件夹中的客户端计算机上安装了证书。使用 Web 浏览器,我可以使用主机名和两个 IP 地址连接到服务器,而不会出现证书错误。我也在编写一个需要连接到服务器的 C# 客户端应用程序。在应用程序的配置中,如果我指定主机名或 IPv4 地址,应用程序可以正常连接,但如果我指定 IPv6 地址,则会出现异常。最里面的消息是 “根据验证程序,远程证书无效。”。如果我将站点配置为接受 HTTP 请求,则客户端应用程序可以使用 IPv6 正常连接。

在使用 IPv6 地址时,我需要做什么才能让客户端应用程序信任我的证书?

编辑:如果相关,我正在使用 HttpClient 的 PostAsync 方法提交请求。

最佳答案

The certificate contains DNS names for the server's hostname, IPv4 address, and IPv6 address.

IPv4 和 IPv6 地址不应作为 DNS 名称(类型 dNSName)给出,而应作为主题备用名称扩展中的 iPAddress 类型给出。但是,众所周知,MSIE 期望这是 dNSName,尽管这是错误的,因此您可能应该将它们同时添加为 dNSName 和 iPAddress。

如果这仍然无法连接到您的应用程序,则可能是 C# 中证书验证中的错误或您在 URL 中指定 IPv6 地址的方式中的错误(即与预期不同的语法)。由于在证书中使用 IP 地址,尤其是 IPv6 是一种不常见的情况,因此这在 C# 和 TLS 库中可能没有经过很好的测试。

关于c# - 使用 IPv6 地址信任 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438107/

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