gpt4 book ai didi

c# - HttpClient 使用自签名证书调用 HTTPS WebApi

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

在我们的开发阶段,我们创建了一个自签名证书,这意味着我有 .cer.pfx 文件。当我们尝试调用 API 时,是否有任何方法可以用来将上述文件嵌入到 HTTPS 请求中,以便并非每个客户端都将证书安装到本地受信任的证书存储区。

这可能吗?我发现一些 API 看起来我们可以这样做,但就是无法成功:

try
{
var secure = new SecureString();
foreach (char s in "password")
{
secure.AppendChar(s);
}

var handler = new WebRequestHandler();
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.UseProxy = false;

var certificate = new X509Certificate2(@"C:\httpstest2.pfx", secure);
handler.ClientCertificates.Add(certificate);

using (var httpClient = new HttpClient(handler))
{
httpClient.BaseAddress = new Uri("https://www.abc.com");
var foo = httpClient.GetStringAsync("api/value").Result;
Console.WriteLine(foo);
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
  1. 我是否需要使用 X509Certificate 而不是 X509Certificate2
  2. 如果我们从第3方公司购买真实的证书,是否可以不关心证书问题而直接通过validate exception?

最佳答案

你能不能只使用这段代码来忽略任何 SSL 错误

ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

显然要确保这不会投入生产。

关于c# - HttpClient 使用自签名证书调用 HTTPS WebApi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26970075/

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