如何为 Azure Web 应用程序上传多个 SSL 证书

How to upload multiple SSL certificate for azure web app

我想在单个 Azure Web 应用程序上添加 100 多个自定义域,每个域都有自己的 SSL 证书(从 cloudflare 下载)。

有没有办法从 azure cli 针对每个自定义域一次性上传 100 多个 pfx 证书文件?

例如:abc.com 有自己的 ssl 证书 xyz.com 有自己的 ssl 证书

我将需要批量添加自定义域及其 ssl 证书。

目前,我可以使用以下命令将 1 个 pfx 上传到应用程序:

New-AzWebAppSSLBinding -WebAppName WebApiStaging -Name devops.prod.xyz -ResourceGroupName Staging -CertificateFilePath C:\prod.pfx -CertificatePassword XXXXXX -SslState SniEnabled

请提出可能的选项。谢谢

让我们看一下您正在使用的命令的变量部分:

New-AzWebAppSSLBinding -WebAppName WebApiStaging -Name devops.prod.xyz -ResourceGroupName Staging -CertificateFilePath C:\prod.pfx -CertificatePassword XXXXXX -SslState SniEnabled

因为它是单个应用程序的多个绑定,-WepAppName-ResourceGroupName 将保持不变,我假设您也想为所有绑定启用 SNI - 这让我们有:

  • -Name <domain fqdn>
  • -CertificateFilePath <path to pfx file>
  • -CertificatePassword <pfx password>

因此,您每次上传证书都需要这 3 条信息。

我建议您将包含这 3 列的电子表格放在一起并将其保存为 CSV 文件,例如:

"Name","CertificateFilePath","CertificatePassword"
"abc.domain.tld","C:\cert1.pfx","s3cr3tp@ssw0rd"
"def.domain.tld","C:\cert2.pfx","s3cr3tp@ssw0rd2"
...

获得 CSV 后,只需调用 Import-Csv 导入数据,然后对每一行重复 New-AzWebAppSSLBinding 调用即可:

foreach($row in Import-Csv .\path\to\bindings.csv){
    New-AzWebAppSSLBinding -WebAppName WebApiStaging -Name $row.Name -ResourceGroupName Staging -CertificateFilePath $row.CertificateFilePath -CertificatePassword $row.CertificatePassword -SslState SniEnabled
}