Azure App Service中Azure Web App自定义客户端证书双向SSL认证配置问题
在Azure App Service中配置特定自定义客户端证书的双向SSL认证
可以直接在Azure App Service内实现仅接受特定自定义客户端证书的双向SSL认证,无需依赖API Management。以下是具体配置步骤:
1. 上传信任的CA证书到App Service
Azure App Service需要信任客户端证书的签发CA(根CA或中间CA),才能验证客户端证书的合法性:
- 登录Azure门户,进入目标Web App的管理界面
- 左侧导航栏选择TLS/SSL设置,切换到公钥证书(.cer) 标签页
- 点击上传证书,选择你用来签发客户端证书的根CA或中间CA的
.cer格式公钥文件完成上传 - 上传完成后,记录该证书的指纹(Thumbprint),后续配置会用到
2. 配置应用设置强制验证客户端证书
通过应用设置让App Service仅接受信任CA签发的客户端证书:
- 进入Web App的配置 > 应用程序设置
- 添加以下两个应用设置:
WEBSITE_LOAD_CERTIFICATES:设置为刚才记录的CA证书指纹;如果需要信任多个CA,用逗号分隔多个指纹,也可设为*加载所有已上传的证书WEBSITE_CLIENT_CERTIFICATE_AUTH_OVERRIDE:设置为RequireAndValidate,该配置会强制App Service验证客户端证书是否由信任的CA签发,而非仅要求提供证书
3. 应用内二次校验(可选但推荐)
为了进一步确保只有指定的客户端证书能访问,可在应用代码中添加校验逻辑,比如验证证书指纹、主体名称等:
以ASP.NET为例:
var clientCert = Request.ClientCertificate; // 校验证书有效性及指定指纹 if (!clientCert.IsValid || !clientCert.Thumbprint.Equals("目标客户端证书指纹", StringComparison.OrdinalIgnoreCase)) { Response.StatusCode = StatusCodes.Status403Forbidden; return; } // 校验通过,继续处理请求
4. 验证配置效果
使用支持客户端证书的工具测试访问:
- 使用curl命令测试(替换为你的证书文件和Web App地址):
curl -v --cert ./your-client-cert.pem --key ./your-client-key.pem https://your-webapp-name.azurewebsites.net - 若使用非信任CA签发的证书访问,会收到403或400错误;使用信任证书则能正常访问
常见注意事项
- 上传的CA证书必须是完整的签发链,否则可能导致验证失败
- 若使用PFX格式证书上传,需确保证书包含私钥且密码正确
WEBSITE_CLIENT_CERTIFICATE_AUTH_OVERRIDE设置仅在App Service的Client certificate mode设为Required时生效
内容的提问来源于stack exchange,提问作者Tahami Rizwan
相关产品推荐
相关产品推荐

