Net Core WebApi HttpClient IHttpClientFactory 证书配置

services.AddHttpClient("WeChatPay", c =>
            {
                c.BaseAddress = new Uri("https://api.mch.weixin.qq.com");
            }).ConfigurePrimaryHttpMessageHandler((c) =>
            {
                var certPath = System.IO.Path.Combine(_environment.WebRootPath, configuration["WeChatPay:cret"]);
                var password = "";
                var cert = new X509Certificate2(certPath, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
                var handler = new HttpClientHandler()
                {
                    ClientCertificateOptions = ClientCertificateOption.Manual,
                    SslProtocols = SslProtocols.Tls12,
                };
                handler.ClientCertificates.Add(cert);
                handler.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls;
                handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true;

                return handler;
            });

 

官方文档地址

https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/certauth?view=aspnetcore-5.0

  

posted @ 2020-12-21 14:07  o天风o  阅读(636)  评论(0编辑  收藏  举报