Azure Web App-无法为SSL / TLS安全通道建立信任关系

时间:2017-11-21 16:22:05

标签: azure azure-webjobs azure-web-app-service

我在Azure中的同一个Web App上运行Web Job和Web API。通过Https Web作业访问Web API。但是在尝试访问Web API时,它会抛出错误:

  

发送请求时发生错误。底层连接   已关闭:无法建立SSL / TLS的信任关系   安全通道。

4 个答案:

答案 0 :(得分:3)

将以下内容添加到您的代码中,这会将您的运行时设置为接受SSL / TLS连接。

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

答案 1 :(得分:0)

在启动时向webjob添加以下代码解决了这个问题。

ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

答案 2 :(得分:0)

我想为这个 SSL 握手和通过 HTTPS 的通信添加一些亮点。 如果您遇到此问题“底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系”,则表示不满足以下条件之一:

  1. 证书签名有效
  2. 证书链终止于受信任的根
  3. 链具有有效的基本约束
  4. 撤销检查成功/未撤销。 CRL 端点是可访问的。 或由于以下限制:
  5. Chain 有名称限制政策。
  6. 链有证书政策
  7. Chain 扩展了密钥用法
  8. 链具有 SubjectKeyIdentifier / AuthorityKeyIdentifier 匹配

如果您使用域为 {webappname}.azurewebsites.net 的 Azure Web 应用程序并使用内部私有证书,那么除了以下三个选项之外,没有解决此问题的方法,因为这是不受支持的情况: 一)应用服务环境 I)) 需要绕过 SSL 验证 III) 使用众所周知的证书颁发机构证书使其工作。

为什么不受支持的情况: 您无法在 Web 应用程序级别安装新的证书颁发机构,因为您使用的是可共享资源而不是专用资源。 即使您使用应用配置“WEBSITES_LOAD_CERTIFICATES”将证书安装到 azure,它也不允许在证书存储中安装证书。

您可以通过网络跟踪了解失败,它应该在服务器问候之后的“身份验证和预主密钥”阶段失败。

我希望这些信息有帮助。

答案 3 :(得分:0)

我遇到了同样的问题。这是因为我创建了一个没有 SSL 绑定的自定义域。在 Azure Web 应用中创建自定义绑定时,Azure 默认使用 HTTPS。如果不添加 SSL 绑定,请确保在 Azure 应用服务应用程序的“自定义域”页面上取消选中仅 HTTPS 按钮。