【问题标题】:Azure webjob accessing third party api could not establish trust relationashipAzure webjob 访问第三方 api 无法建立信任关系
【发布时间】:2017-12-30 00:47:51
【问题描述】:

在 Azure 中,我有一个云服务和一个网络作业,它试图使用第三方 api 'https://api.txtlocal.com/send/' 来允许我们从应用程序发送 SMS 消息。

这一直正常工作,但最近对 api 的调用失败并出现以下错误:

System.Net.WebException:底层连接已关闭:可以 不为 SSL/TLS 安全通道建立信任关系。 ---> System.Security.Authentication.AuthenticationException:远程 根据验证程序,证书无效

在联系 TextLocal 支持后,他们说其他一些客户报告了这个问题,这与他们的 SSL 证书的 Thawte 证书链有关。

提供的解决方案是让我更新我们服务器中的 Thawte 根证书。 (在台式电脑上自动更新,因此当我在本地运行作业时它始终有效。)因此,我远程访问了我们的 Azure 云服务 VM,更新了商店中的证书,它开始按预期工作。

然而,现在它又突然停止工作了。 Microsoft 支持人员告诉我,该解决方案无论如何也不会奏效,因为他们每个月都会更新 VM,而且我对证书所做的任何更改都可能会被覆盖。

所以,我的问题是,除了覆盖 SSL 检查之外,我还能做些什么来确保对 api 的调用始终有效?

提前感谢您的帮助。

【问题讨论】:

    标签: c# azure ssl azure-webjobs azure-cloud-services


    【解决方案1】:

    覆盖 SSL 检查不是一个干净的解决方案。我建议您在 Cloud Service 中编写一个启动脚本,该脚本将在每次启动时在 Cloud Service VM 上安装 Thawte 根证书。

    因此,您必须创建一个脚本 (.cmd/.ps) 来安装证书。您可以将此证书与您的应用程序捆绑在一起,或从 Thawte 下载到云服务 VM。

    完成上述操作后,您可以编写一个启动任务,该任务将调用上述脚本。您必须在 elevated 模式下运行它才能正常工作。

    这里是关于如何运行启动任务的文档:How to configure and run startup tasks for a cloud service

    这是一个示例启动任务:

    <Startup>
        <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple">
            <Environment>
                <Variable name="MyVersionNumber" value="1.0.0.0" />
            </Environment>
        </Task>
    </Startup>
    

    在你传入启动任务的文件中可以有这样的东西:

    certmgr.exe -add MyCert.cer -s -r localMachine root
    

    有关如何通过命令行部署证书的更多信息,请参阅此:Deploy a Certificate by Using the Command Prompt

    或者,如果您想探索 PowerShell,则可以参考Import-Certificate 的文档。

    【讨论】:

    • 您好,感谢您的回答。但是,此解决方案将要求我“知道” Thawte 证书何时更改,下载它并再次重新发布我的服务和网络作业。既然我们使用 Azure 环境作为 PAAS,我不明白为什么我们必须做任何事情,因为有问题的证书不属于我们,也不属于我们的基础架构。
    • 同意。但不幸的是,您的应用程序依赖于该 CA 证书。在某个时间点,证书可能会作为 Windows 更新的一部分添加。但是在那之前,这是我能想到的解决方案。您可能可以向 Microsoft 提出支持请求,以获得一些支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 2020-07-03
    • 2014-07-17
    • 2016-01-01
    • 2011-05-28
    相关资源
    最近更新 更多