我在Azure中的同一个Web App上运行Web Job和Web API。通过Https Web作业访问Web API。但是在尝试访问Web API时,它会抛出错误:
发送请求时发生错误。底层连接 已关闭:无法建立SSL / TLS的信任关系 安全通道。
答案 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 安全通道建立信任关系”,则表示不满足以下条件之一:
如果您使用域为 {webappname}.azurewebsites.net 的 Azure Web 应用程序并使用内部私有证书,那么除了以下三个选项之外,没有解决此问题的方法,因为这是不受支持的情况: 一)应用服务环境 I)) 需要绕过 SSL 验证 III) 使用众所周知的证书颁发机构证书使其工作。
为什么不受支持的情况: 您无法在 Web 应用程序级别安装新的证书颁发机构,因为您使用的是可共享资源而不是专用资源。 即使您使用应用配置“WEBSITES_LOAD_CERTIFICATES”将证书安装到 azure,它也不允许在证书存储中安装证书。
您可以通过网络跟踪了解失败,它应该在服务器问候之后的“身份验证和预主密钥”阶段失败。
我希望这些信息有帮助。
答案 3 :(得分:0)
我遇到了同样的问题。这是因为我创建了一个没有 SSL 绑定的自定义域。在 Azure Web 应用中创建自定义绑定时,Azure 默认使用 HTTPS。如果不添加 SSL 绑定,请确保在 Azure 应用服务应用程序的“自定义域”页面上取消选中仅 HTTPS 按钮。