Azure WebJob“无法创建 SSL/TLS 安全通道”

Posted

技术标签:

【中文标题】Azure WebJob“无法创建 SSL/TLS 安全通道”【英文标题】:Azure WebJob "Could not create SSL/TLS secure channel" 【发布时间】:2015-08-11 14:27:04 【问题描述】:

我有一个 Azure WebJob,它在本地运行时工作正常,但在 Azure 中运行时会引发异常。 WebJob 正在通过 HTTPS 进行外部调用,这在 Azure 中会产生此异常:

System.Net.WebException:请求被中止:无法创建 SSL/TLS 安全通道。在 System.Net.HttpWebRequest.GetResponse()

我还尝试使用ServicePointManager 将安全协议设置为 TLS,但这也对异常没有影响。这是我的代码的 sn-p。

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

var request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";

Azure 会阻止 WebJobs 访问 Internet 还是我做错了什么?

【问题讨论】:

还尝试伪造证书验证:ServicePointManager.ServerCertificateValidationCallback = delegate return true; ; 如果我也在 Azure 中从 WebApp 进行相同的调用,也会发生同样的事情。也许它在底层主机上被禁用了? 外部服务的证书是否有一个证书链到一个通用的 CA 证书?还是就像您在开发机器上信任的自签名证书? 它正在使用由证书颁发机构签署的证书。域是tls.so。我认为这与证书使用 SNI 和 Azure 的事实有关。 【参考方案1】:

我遇到了同样的问题,最后在 MSDN 论坛上的以下帖子的帮助下设法让它工作:

https://social.msdn.microsoft.com/Forums/en-US/ca6372be-3169-4fb5-870f-bfbea605faf6/azure-webapp-webjob-exception-could-not-create-ssltls-secure-channel?forum=windowsazurewebsitespreview

似乎微软上个月(2015 年 10 月)针对这个问题部署了修复程序,但我也不得不设置:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;

请注意,我省略了 SecurityProtocol.Tls,因为 Microsoft 员工在 MSDN 主题的回复之一中提到它似乎不受支持:

来自在 Web 应用程序中运行的 .NET 代码的客户端 hello 表明它 正在尝试将 TLS v1.0 与 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 一起使用, 显然不是的 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 密码 服务器上支持。在 .NET 4.5 中,您可以要求它使用不同的 协议版本,然后一旦我这样做,事情就会开始为我工作。

【讨论】:

这是为我做的:【参考方案2】:

尝试扩展到基本层。似乎免费/共享层不支持 SSL/TLS,即使您通过文件(而不是证书存储)使用它们。

【讨论】:

以上是关于Azure WebJob“无法创建 SSL/TLS 安全通道”的主要内容,如果未能解决你的问题,请参考以下文章

Azure api 请求被中止:无法创建 SSL/TLS 安全通道。 http客户端在调用一些web api时

在 Azure 网站中使用 Azure SDK 时出现间歇性 SSL/TLS 错误

RestRequest 在本地工作,但不是来自天蓝色“请求被中止:无法创建 SSL/TLS 安全通道。”

无法创建 SSL/TLS 安全通道。安全通道故障

无法创建 SSL/TLS 安全通道 - GetRequestStream()

“请求被中止:无法创建 SSL/TLS 安全通道”