You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service访问双向TLS认证服务时公钥证书安装问题

证书部署位置选型

先明确核心逻辑:证书装在哪取决于哪一层直接和外部mTLS服务建立TLS连接,Azure托管服务没有持久化的系统存储供你随意安装证书,和传统本地服务器的操作逻辑有区别,分场景选位置即可:

  • 若App Service直接发起对外部mTLS服务的请求,中间没有代理层:不需要用Application Gateway,证书直接上传到App Service的TLS/SSL配置即可,Key Vault仅作为证书的安全托管存储,不直接参与运行时的TLS握手。
  • 若你用Application Gateway作为出站代理,所有发往外部mTLS服务的流量都经过Application Gateway转发:证书直接配置在Application Gateway的后端认证规则里即可,同样可以关联Key Vault同步证书,方便后续轮换。
  • 注意:仅持有公钥证书无法完成mTLS客户端认证,你需要从服务提供方拿到包含对应私钥的客户端证书(通常为PFX/P12格式),同时拿到证书导入密码,否则后续握手一定会失败。
App Service 出站mTLS配置流程

App Service不会自动识别证书位置,也不会自动在出站请求里携带客户端证书,需要按以下步骤显式配置:

  1. 上传证书
    • 方式一(直接上传):进入App Service门户页,找到「TLS/SSL设置」→「私钥证书(.pfx)」,上传带私钥的客户端证书,复制保存生成的证书指纹(Thumbprint)。
    • 方式二(Key Vault同步):先给App Service开启系统分配托管标识,给该标识授予Key Vault的「证书获取」权限,回到上述TLS/SSL设置页选择「从Key Vault导入」,选中对应证书即可,后续Key Vault侧更新证书版本,App Service会自动同步,不需要手动重新上传。
  2. 配置运行时加载证书
    App Service默认不会把上传的证书加载到应用运行环境,需要添加应用设置告知平台要加载的证书:
    • Windows部署的App Service:新增应用设置WEBSITE_LOAD_CERTIFICATES,值填之前保存的证书指纹,需要加载所有已上传证书则填*。配置生效后,证书会被自动注入到当前应用实例的CurrentUser\My证书存储路径下。
    • Linux部署的App Service:同样配置上述WEBSITE_LOAD_CERTIFICATES应用设置,证书会被挂载到实例内的/var/ssl/private/路径下,文件名为<证书指纹>.p12。
  3. 代码层面绑定证书
    平台仅负责把证书放到运行时可访问的位置,不会自动替你把证书附加到出站请求里:你需要在发起HTTPS请求的代码逻辑中,从对应存储位置读取证书,将其绑定到HTTP客户端的客户端证书参数上,再向外部mTLS服务发起请求,才能完成双向TLS握手。
用Application Gateway处理mTLS的适用场景

如果你不想在业务代码里处理证书加载、绑定的逻辑,或者名下多个App Service都需要访问同一个要求mTLS的外部服务,可以给App Service配置虚拟网络集成,将发往外部mTLS服务的流量路由到Application Gateway,在Application Gateway的后端HTTP设置中开启「客户端证书认证」,上传对应客户端证书即可。这种模式下Application Gateway会在和外部服务建连时自动出示证书,App Service侧不需要做任何证书相关配置。

内容的提问来源于stack exchange,提问作者mech9t5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:57:21