Mat*_*kan 23 ssl certificate azure pfx azure-web-app-service
多年来,我一直能够使用Stack Overflow 答案中的 OpenSSL 创建方法上传新的 pfx 文件,以在 Azure 应用服务上进行 SSL 绑定:
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt
Run Code Online (Sandbox Code Playgroud)
但是,现在执行相同的操作会出现此错误:
至少有一个证书无效(证书验证失败,因为无法加载。)
有哪些方法可以解决这个问题?
Mat*_*kan 46
应用服务私有证书必须满足以下要求:
OpenSSL 3+ 不再默认使用 DES 加密。原始命令需要附加-legacy和-provider-path(路径legacy.dll)参数:
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -legacy -provider-path 'C:\Program Files\OpenSSL-Win64\bin'
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因您的 OpenSSL 安装不包含旧提供程序:
打开 PowerShell 并运行此命令,替换-FilePath为非工作 pfx 文件的路径,并将密码-String参数替换为其各自的密码:
Import-PfxCertificate -FilePath "pfx file path" -CertStoreLocation Cert:\LocalMachine\My -Password (ConvertTo-SecureString -String 'MyPassword' -AsPlainText -Force) -Exportable
Run Code Online (Sandbox Code Playgroud)
成功的输出将如下所示:
使用此指纹将证书导出到新的 pfx 文件,替换-Cert、-FilePath和密码-String参数:
Export-PfxCertificate -Cert Microsoft.PowerShell.Security\Certificate::LocalMachine\My\B56CE9B122FB04E29A974A4D0DB3F6EAC2D150C0 -FilePath 'newPfxName.pfx' -Password (ConvertTo-SecureString -String 'MyPassword' -AsPlainText -Force)
Run Code Online (Sandbox Code Playgroud)
Azure 现在应该能够验证新的 pfx 文件输出。