36 lines
1.3 KiB
PowerShell
36 lines
1.3 KiB
PowerShell
param(
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$OutputDirectory,
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$Password
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
$output = [System.IO.Path]::GetFullPath($OutputDirectory)
|
|
New-Item -ItemType Directory -Path $output -Force | Out-Null
|
|
$securePassword = ConvertTo-SecureString -String $Password -AsPlainText -Force
|
|
$certificate = New-SelfSignedCertificate `
|
|
-Type Custom `
|
|
-Subject 'CN=AppPublisher' `
|
|
-FriendlyName 'Server Monitor Manager test signing' `
|
|
-CertStoreLocation 'Cert:\CurrentUser\My' `
|
|
-KeyAlgorithm RSA `
|
|
-KeyLength 3072 `
|
|
-HashAlgorithm SHA256 `
|
|
-KeyExportPolicy Exportable `
|
|
-KeyUsage DigitalSignature `
|
|
-TextExtension @('2.5.29.37={text}1.3.6.1.5.5.7.3.3') `
|
|
-NotAfter (Get-Date).AddYears(1)
|
|
|
|
try {
|
|
$pfxPath = Join-Path $output 'server-monitor-manager-test-signing.pfx'
|
|
$cerPath = Join-Path $output 'server-monitor-manager-test-signing.cer'
|
|
Export-PfxCertificate -Cert $certificate -FilePath $pfxPath -Password $securePassword | Out-Null
|
|
Export-Certificate -Cert $certificate -FilePath $cerPath | Out-Null
|
|
Write-Output $pfxPath
|
|
Write-Output $cerPath
|
|
}
|
|
finally {
|
|
Remove-Item -LiteralPath "Cert:\CurrentUser\My\$($certificate.Thumbprint)" -Force
|
|
}
|