提问人:Ask 提问时间:10/24/2023 最后编辑:marc_sAsk 更新时间:10/25/2023 访问量:36
无法使用 HttpClient 调用微服务
Unable to call microservice using HttpClient
问:
我正在使用 OpenApi (NSwag) 创建用于调用微服务的客户端。现在,当我从 Visual Studio 运行我的应用程序时,它工作正常,我可以使用 调用我的服务,但我将我的项目托管为 Windows 服务,当 Windows 服务尝试调用微服务时,它会引发以下错误:HttpClient
HttpClient
无法建立 SSL 连接,请参阅内部异常。
System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效。
我在本地运行我的微服务并使用 localhost url
答:
0赞
Qiang Fu
10/25/2023
#1
“证书无效”的常见原因是证书的域与您调用的域不同。但不管是什么原因,一个简单的解决方法是在创建 httpclient 时绕过证书验证。
var httpClientHandler = new HttpClientHandler();
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) =>{return true;};
builder.Services.AddScoped(sp => new HttpClient(httpClientHandler));
或者,如果需要,可以添加一些验证
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) => {
if (cert.GetCertHashString() == "A7E2BA992F4F2BE220559B8A5371F05A00A6E750") //FingerPrint of the certificate
{
return true;
}
return false;
};
评论