【发布时间】:2022-07-25 15:54:03
【问题描述】:
我有一个非常简单的要求:
using System.Net.Http;
var client = new HttpClient();
var result = client.GetAsync("https://...com");
result.Wait();
这会失败,并出现无法创建 SSL 隧道的 WebException。 SSL Labs 和我的浏览器都同意服务器证书有效且可以信任。
.NET 为什么不信任服务器?我怎样才能找出具体的问题是什么?我显然不想空白地禁用验证。
【问题讨论】:
-
仅仅因为“无法创建SSL隧道”并不意味着它不信任证书,它可能是协议版本不匹配。该站点支持哪些 SSL/TLS 版本?您的应用是否使用其中一种 SSL/TLS 版本?
-
@phuzi 这也是我的问题; 如何找到隧道失败的具体原因?我知道这可能是很多事情,但我怎么知道是哪一个?
-
Wireshark 嗅探器跟踪会告诉你。旁注:
.Wait()是个坏主意,可能会导致死锁,请改用await -
@phuzi 确实是 TLS 版本。介意发布答案以便我接受吗?