【Azure App Service】Root CA on App Service

简介: Azure App Service for Windows应用连接外部SSL服务时,需确保其证书由受信任的根CA颁发。多租户环境下无法修改根证书,但ASE(单租户)可加载自定义CA证书。若遇证书信任问题,可更换为公共CA证书或将应用部署于ASE并导入私有CA证书。通过Kudu的PowerShell(Windows)或SSH(Linux)可查看当前受信任的根证书列表。

应用服务具有受信任的根证书列表,无法在应用服务的多租户 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

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

 

Linux

转到 SSH 并发出以下命令:

cd /etc/ssl/certs

ls | find *.pem

 

参考资料

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

 

 


 

 

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

相关文章
|
3月前
|
Java 应用服务中间件 API
【App Service】部署War包到Azure云上遇404错误
Java应用部署至Azure App Service for Windows后报404,本地运行正常。经排查,日志提示类文件版本不兼容:应用由Java 17(class file version 61.0)编译,但环境仅支持到Java 11(55.0)。错误根源为Java版本不匹配。调整App Service的Java版本至17后问题解决,成功访问接口。
188 1
|
4月前
|
API 网络架构 容器
【Azure Container App】查看当前 Container App Environment 中的 CPU 使用情况的API
在扩展 Azure Container Apps 副本时,因 Container App Environment 的 CPU 核心数已达上限(500 cores),导致扩展失败。本文介绍如何使用 `az rest` 命令调用 Azure China Cloud 管理 API,查询当前环境的 CPU 使用情况,并提供具体操作步骤及示例。
162 16
|
4月前
|
数据安全/隐私保护
【Azure Function App】PowerShell Function 执行 Get-AzAccessToken 的返回值类型问题:System.String 与 System.Security.SecureString
将PowerShell Function部署到Azure Function App后,Get-AzAccessToken返回值类型在不同环境中有差异。正常为SecureString类型,但部分情况下为System.String类型,导致后续处理出错。解决方法是在profile.ps1中设置环境变量$env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN=false,以禁用明文输出。
157 0
|
4月前
|
网络协议 Java Linux
【App Service】在Azure环境中如何查看App Service实例当前的网络连接情况呢?
在 Azure App Service(Windows 和 Linux)中部署应用时,分析网络连接状态是排查异常、验证端口监听及确认后端连接的关键。本文介绍如何在 Linux 环境中使用 `netstat` 命令查看特定端口(如 443、3306、6380)的连接情况,并解析输出结果。同时说明在 Windows App Service 中 `netstat` 被禁用的情况下,如何通过门户抓包等替代方法进行网络诊断。内容涵盖命令示例、操作步骤及附录说明,帮助开发者快速掌握云环境中的网络分析技巧。
144 11
|
3月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
749 139
|
3月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
397 137
|
3月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
252 154
|
4月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
182 0
|
3月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
370 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡