C#无法使用TLS1.2在Windows 7/Windows Server上创建ssl/tls安全通道

z0qdvdin  于 2023-01-02  发布在  C#
关注(0)|答案(1)|浏览(391)

我知道有很多人问这个,但我想我已经读了太久的答案和问题没有结果了。
我有一个调用Web服务的C#应用程序。在Windows 10上一切正常,但当我在Windows 7(或Windows Server 2008 R2或Windows Server 2012)上运行该应用程序时,抛出了异常"无法创建SSL/TLS安全通道"。
我正在使用TLS1.2和. NET Framework 4.5(说实话,实际应用程序是4.0,我正在使用一种变通方法来启用TLS1.2,但我创建了一个使用4.5和本机TLS1.2管理的测试应用程序,仍然存在相同的问题:因此与变通方案无关)。
与Postman的相同调用即使在Windows7上也能很好地工作。
这是我的密码

public static LicenseInfoDTO GetLicenseInfo()
    {
        LicenseInfoDTO result = null;

        Uri uri =_myUri;

        try
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            ServicePointManager.Expect100Continue = true;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            request.Accept = "application/json";
            request.Headers.Add("AuthToken", SECURITY_TOKEN);
            request.Method = "GET";

            WebResponse response = request.GetResponse();

            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                JsonSerializer serializer = new JsonSerializer();
                result = (LicenseInfoDTO)serializer.Deserialize(reader, typeof(LicenseInfoDTO));
            }
        }
        catch (Exception ex)
        {
            logger.Error($"Error calling SEQUAR to get info for license {license}", ex);
        }

        return result;
    }

我已经尝试了"Microsoft EasyFix",在这里找到(和在网上的许多答案)没有结果。https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
我还对我发现的系统注册表进行了几乎所有更改组合。
我将检查密码,但我不是Maven,不知道在哪里寻找随机搜索奇怪的东西。
有没有人能想出一个神奇的解决办法?这快把我们逼疯了。
谢谢大家!
编辑:使用http而不是https它工作。

ubby3x7f

ubby3x7f1#

最后,我们想通了:NET Framework似乎使用Internet Explorer密码来保护https调用。在Windows 7中,IE11不支持服务器端安装的任何密码:这就是安全SSL/TLS通道无法创建的原因。
我们在服务器端添加了一个旧的密码来解决这个问题,但是我们计划包括Curl(https://curl.haxx.se/windows/)以避免使用不安全的密码。
这是一个非常漫长的一周,我希望这个自动应答将帮助有人在那里,有一天。

相关问题