【发布时间】:2022-04-08 04:52:43
【问题描述】:
在 C# 中,使用 HttpClient 时,如何连接到使用自签名证书(用于测试)或不属于机器信任库的自定义 CA 的 https 服务器?请注意,我不需要客户端证书,只需要 HttpClient 来验证未由机器上受信任的根 CA 之一签名的服务器证书。我知道我可以将自签名证书或 CA 添加到机器上的本地信任库中,但假设我想避免这样做。我需要的基本上是为正在运行的应用程序提供额外的根 CA。
据我所知,在其他语言中有很简单的方法:
-
在java中,使用“javax.net.ssl.trustStore”系统属性。
-
在 Node.js 中,使用 NODE_EXTRA_CA_CERT 环境变量。
但到目前为止,我在 .Net 上找不到类似的东西。有没有像上面这样简单的方法?
【问题讨论】:
-
有一个回调来验证服务器证书:docs.microsoft.com/en-us/dotnet/api/…
-
哦,我明白了,谢谢。但我仍然想知道是否有像上面这样的简单方法(例如通过 env 变量)来避免重写证书验证的整个逻辑。基本上使用内置验证,但考虑我为该过程提供的证书是根证书之一。
-
我不知道任何
标签: c# ssl .net-core dotnet-httpclient ca