从连接到密钥保管库的Azure DevOps变量组访问证书指纹

时间:2018-11-22 18:01:12

标签: azure azure-devops continuous-deployment

我有一个VSTS库变量组连接到Azure中的密钥库: enter image description here

有关它的更多信息,您可以在这里阅读: https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=vsts&tabs=yaml

在Azure的关键文件库中,我有一个秘密列表和一个证书列表。

密钥库机密示例:

  • AppInsightsInstrumentationKey
  • CacheConnectionString

示例证书:

  • GlobalCertificate

现在,我可以通过简单的语法作为释放这些变量的变量来访问:

  • $(GlobalCertificate)
  • $(AppInsightsInstrumentationKey)
  • $(CacheConnectionString)

我的目标是读取位于变量$(GlobalCertificate)中的证书的缩略图。如何获得它?

1 个答案:

答案 0 :(得分:1)

我知道这很老了,但是我发现这篇文章正在寻找相同的东西,却无法在其他地方找到解决方案。

我已经可以使用Powershell对其进行分类,但是考虑到我们已经将PFX上传到密钥库中,这是很奇怪的。我也将我的pfx密码保存到keyvault中,但是如果不这样做,请用您自己的值替换$pwd行中的变量。

在Azure DevOps管道中,创建Powershell任务。脚本是:

#Convert the Secure password that's presented as plain text back into a secure string
$pwd = ConvertTo-SecureString -String $(GlobalCertificate-Password) -Force -AsPlainText

#Create PFX file from Certificate Variable
New-Item Temp-Certificate.pfx -Value $(GlobalCertificate)

#Import the PFX certificate from the newly created file and password. Read the thumbprint into variable
$Thumbprint = (Import-PfxCertificate -CertStoreLocation Cert:\CurrentUser\My -FilePath Temp-Certificate.pfx -Password $pwd).Thumbprint

Write-Host $Thumbprint

#Rest of Script below or set environment variable for rest of Pipeline
Write-Host "##vso[task.setvariable variable=Thumbprint]$Thumbprint"