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

Azure App Service加载验证.pfx证书失败,如何解决该问题?

Azure App Service上传PFX证书加载失败的解决方法

问题背景

多年来一直使用以下OpenSSL命令生成.pfx文件,用于Azure App Service的SSL绑定:

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

但现在执行相同操作后,上传时出现错误:

At least one certificate is not valid (Certificate failed validation because it could not be loaded.)

解决方法

  • 验证证书与私钥的匹配性
    通过提取公钥指纹确认两者是否对应:

    # 提取证书的公钥指纹
    openssl x509 -noout -modulus -in domain.name.crt | openssl md5
    # 提取私钥的公钥指纹
    openssl rsa -noout -modulus -in domain.name.key | openssl md5
    

    两个输出的哈希值必须完全一致,否则说明证书和私钥不匹配,需重新获取对应文件。

  • 打包完整证书链
    Azure要求PFX包含完整信任链(服务器证书+中间证书+根证书),将所有证书合并为bundle.crt(按服务器证书→中间证书→根证书的顺序排列),再执行生成命令:

    openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -certfile bundle.crt
    
  • 指定兼容加密算法
    新版OpenSSL默认算法可能不被Azure兼容,生成时添加兼容参数:

    # 启用legacy模式
    openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -certfile bundle.crt -legacy
    # 或明确指定加密套件
    openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -certfile bundle.crt -certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES -macalg SHA1
    
  • 检查PFX文件完整性与密码
    确保生成PFX时设置的密码符合Azure要求(至少8位,含字母+数字),且上传时输入一致。同时验证PFX文件是否可正常读取:

    openssl pkcs12 -info -in domain.name.pfx
    

    若命令执行失败,说明文件损坏,需重新生成。

  • 确认证书有效性
    检查证书是否过期、域名是否匹配:

    # 查看有效期
    openssl x509 -noout -text -in domain.name.crt | grep -A 2 "Validity"
    # 查看绑定域名
    openssl x509 -noout -text -in domain.name.crt | grep -A 1 "Subject Alternative Name"
    

    确保证书在有效期内,且包含要绑定的目标域名。

内容的提问来源于stack exchange,提问作者Matthew Steven Monkan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:57:16