@@ -200,8 +200,8 @@ jobs:
200
200
echo "c:\tools\clcache\clcache-4.1.0" >> $env:GITHUB_PATH
201
201
- name : Setup code sign environment
202
202
run : |
203
+ dotnet tool install --global AzureSignTool --version 5.0.0
203
204
echo "$(Split-Path -Path $(Get-ChildItem -Path "${env:ProgramFiles(x86)}\Windows Kits\10\App Certification Kit\signtool.exe"))" >> $env:GITHUB_PATH
204
- echo "pfxcert=$([string](Get-Location)+'\CodeSignCertificate.pfx')" >> $env:GITHUB_ENV
205
205
- name : Prepare ccache
206
206
uses : actions/cache@v4
207
207
with :
@@ -232,28 +232,28 @@ jobs:
232
232
$msi_name = Get-ChildItem -Filter *.msi -Name
233
233
echo "msi_installer=build/$msi_name" >> $env:GITHUB_OUTPUT
234
234
echo "msi_name=$msi_name" >> $env:GITHUB_OUTPUT
235
- - name : Decode signing certificate
236
- id : decode_certificate
237
- run : |
238
- $pfx_bytes=[System.Convert]::FromBase64String("${{ secrets.CODESIGNCERTPFX }}")
239
- [IO.File]::WriteAllBytes($env:pfxcert, $pfx_bytes)
240
235
- name : Sign the installer
241
236
id : code_sign
242
237
run : |
243
238
$servers = @('http://ts.ssl.com', 'http://timestamp.digicert.com', 'http://timestamp.sectigo.com')
244
239
foreach($ts_server in $servers)
245
240
{
246
- & signtool.exe sign /f $env:pfxcert /p "${{ secrets.CODESIGNCERTPASSWORD }}" /tr $ts_server /td SHA256 /fd SHA256 ${{ steps.create_packages.outputs.msi_installer }}
241
+ & AzureSignTool sign `
242
+ --azure-key-vault-url "${{ secrets.AZURE_KEYVAULT_URL }}" `
243
+ --azure-key-vault-client-id "${{ secrets.AZURE_CLIENT_ID }}" `
244
+ --azure-key-vault-tenant-id "${{ secrets.AZURE_TENANT_ID }}" `
245
+ --azure-key-vault-client-secret "${{ secrets.AZURE_CLIENT_SECRET }}" `
246
+ --azure-key-vault-certificate "${{ secrets.AZURE_CERTIFICATE_NAME }}" `
247
+ --timestamp-rfc3161 $ts_server `
248
+ --timestamp-digest sha256 `
249
+ --file-digest sha256 `
250
+ --verbose ${{ steps.create_packages.outputs.msi_installer }}
247
251
if ($LastExitCode -eq "0")
248
252
{
249
253
# Stop if code-signing the binary using this server was successful.
250
254
break
251
255
}
252
256
}
253
- - name : Remove signing certificate
254
- id : remove_certificate
255
- run : |
256
- Remove-Item $env:pfxcert
257
257
- name : Verify installer signature
258
258
id : verify_codesign
259
259
run : |
0 commit comments