首页 > 解决方案 > 无法创建 SSL/TLS 安全通道 - 仅在服务器上。在开发箱上工作

问题描述

我有一个简单的控制台应用程序,它连接到使用证书身份验证的 Web 服务。我正在使用 Tls1.2 协议。从我的开发箱执行时它按预期工作,但从服务器执行时收到异常。

我已经验证客户端证书已正确安装在服务器中并且可以由应用程序访问。此外,我还验证了服务器中启用了 TLS 1.2,并且服务器 IP 地址已在 Web 服务中列入白名单。从字面上看,除了盒子之外,所有设置都是相同的。

我很困惑它可以在我的开发盒上运行,但不能在服务器上运行。我在服务器上收到的错误消息是

发送请求时出错。请求被中止:无法创建 SSL/TLS 安全通道

任何见解都受到高度赞赏。

X509Certificate cert = Utilities.GetClientCertificate();
ClinicalTrialMapping ctContent = null;
Console.WriteLine(cert);
        if (cert != null)
        {

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            Console.WriteLine(ServicePointManager.SecurityProtocol);
            WebRequestHandler handler = new WebRequestHandler();

            handler.ClientCertificates.Add(cert);
            handler.ClientCertificateOptions = ClientCertificateOption.Manual;


            using (var client = new HttpClient(handler))
            {
                string baseUrl = ConfigurationManager.AppSettings["BaseUrl"];
                client.BaseAddress = new Uri(baseUrl);
                client.DefaultRequestHeaders.Accept.Clear();

                try
                {
                    string url = "test.php";
                    HttpResponseMessage response = await 
                    client.GetAsync(url);
                 }
                catch (Exception ex)
                {
                    throw ex;
                }

标签: c#.netweb-servicesnetworkingtls1.2

解决方案


推荐阅读