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 中,您可以要求它使用不同的 协议版本,然后一旦我这样做,事情就会开始为我工作。
【讨论】:
这是为我做的:尝试扩展到基本层。似乎免费/共享层不支持 SSL/TLS,即使您通过文件(而不是证书存储)使用它们。
【讨论】:
以上是关于Azure WebJob“无法创建 SSL/TLS 安全通道”的主要内容,如果未能解决你的问题,请参考以下文章
Azure api 请求被中止:无法创建 SSL/TLS 安全通道。 http客户端在调用一些web api时
在 Azure 网站中使用 Azure SDK 时出现间歇性 SSL/TLS 错误
RestRequest 在本地工作,但不是来自天蓝色“请求被中止:无法创建 SSL/TLS 安全通道。”