我想通过azure devops任务为我的应用程序服务上传.pfx证书。有人可以帮我如何通过ARM模板上传证书吗?
答案 0 :(得分:0)
您可以按照以下步骤使用ARM上传证书。
2,添加download secure file task以将证书下载到管道中。您可以通过路径$(<mySecureFile>.secureFilePath) or $(Agent.TempDirectory)
进行引用。检查here以获得有关预定义变量的更多信息
3,添加一个powershell任务以在以下脚本中运行,以将您的证书转换为base64字符串。并将其存储到自定义环境变量certificateBase64Content
中。选中here,以了解有关变量的更多信息
$secName = “<certificateName>.pfx
$tempDirectory = $env:AGENT_TEMPDIRECTORY
$pfxFilePath = Join-Path $tempDirectory $secName
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$flag = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
$cert.Import($pfxFilePath, "$(certificatePassword)", $flag)
$bin = $cert.RawData
$base64Value = [System.Convert]::ToBase64String($bin)
Write-Host "##vso[task.setvariable variable=certificateBase64Content;]$base64Value"
4,创建一个密钥仓库,并通过Microsoft.Web资源提供者对KeyVault的访问来获取证书,该证书将存储在密钥仓库中。
请查看博客"Create the KeyVault with the required settings“部分以获取ARM模板示例。
5,将证书存储在上一步创建的密钥库中。
请查看博客 Store the certificate in KeyVault 部分以获取ARM模板示例。
6,请参阅博客Deploy the certificate to your Web App的最后一步来部署您的证书。
提醒:
在以上博客中,在Azure资源组部署任务中覆盖了ARM模板中定义的参数。您可以在 azure资源组部署任务中的模板设置下进行配置。
添加:
如果您不想使用密钥库。您可以省略第4步和第5步的操作。在转换完证书并将其存储在上述第3步的自定义变量中之后,直接上传证书。您需要用自定义变量{{替换parameters('certificatePfxBase64')
1}}
certificateBase64Content