【Azure App Service】Root CA on App Service - LuBu0505/My-Code GitHub Wiki

应用服务具有受信任的根证书列表,无法在应用服务的多租户 Windows (App Service for Windows)中修改这些证书,但可以在应用服务环境 (ASE) 的受信任根存储中加载自己的证书颁发机构 (CA) 证书,这是因为ASE中的应用服务是单租户环境。( Free, Basic, Standard, and Premium 应用服务计划都是多租户的,Isolated Plan是单租户)

当 Azure App Service for Windows 应用尝试通过 SSL 连接到外部终结点时,外部终结点服务上的证书必须由受信任的根 CA 颁发,这一点很重要。如果外部服务上的证书是自签名证书或私有 CA 证书,则托管应用的实例将不信任该证书,并且 SSL 握手将失败并出现以下错误:

Could not establish trust relationship for the SSL/TLS secure channel

在这种情况下,有两种解决方案:

  1. 修改外部服务所使用的证书,根据从应用服务中获取的受信任的根证书颁发机构列表中的CA机构所颁发的证书。
  2. 如果无法修改外部服务终结点证书或需要使用专用 CA 证书,请在应用服务环境 (ASE) 上托管应用,并在受信任的根存储中加载自己的 CA 证书

如何使用 Kudu 在应用服务上获取受信任根 CA 的列表

如何打开Kudu管理页面

转到 Azure App Service的门户,在目录中打开 ***“开发工具 > 高级工具 ***”,然后单击“转到 ->”。将为 Kudu 工具打开一个新的浏览器页面

接下来的步骤将取决于是否是 Windows 或  Linux  应用。

Windows

转到调试控制台 > Powershell,将出现一个 Powershell 窗口。在控制台中发出以下命令:

dir cert:\localmachine\root image.png

 注意:一定是要进入PowerShell窗口,不能是CMD,否则会遇见:**The specified path is invalid ** 错误 image.png

Linux

转到 SSH 并发出以下命令:

cd /etc/ssl/certs

ls | find *.pem image.png

参考资料

Root CA on App Service : https://azure.github.io/AppService/2021/06/22/Root-CA-on-App-Service-Guide.html

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!