通过azure devops管道上传.pfx证书

时间:2019-11-28 09:22:45

标签: azure-devops azure-pipelines devops

我想通过azure devops任务为我的应用程序服务上传.pfx证书。有人可以帮我如何通过ARM模板上传证书吗?

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤使用ARM上传证书。

1,转到“管道”,“库”下的安全文件并上传证书。 enter image description here

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资源组部署任务中的模板设置下进行配置。 enter image description here

添加

如果您不想使用密钥库。您可以省略第4步和第5步的操作。在转换完证书并将其存储在上述第3步的自定义变量中之后,直接上传证书。您需要用自定义变量{{替换parameters('certificatePfxBase64') 1}}

certificateBase64Content