-
Notifications
You must be signed in to change notification settings - Fork 0
/
ImportIISExpressCertificate.ps1
32 lines (30 loc) · 1.35 KB
/
ImportIISExpressCertificate.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# https://docs.microsoft.com/en-us/troubleshoot/visualstudio/general/warnings-untrusted-certificate
ipmo PKI
$name = [GUID]::NewGuid()
$cerFile = "$env:TEMP\$name.cer"
$certs = Get-ChildItem Cert:\LocalMachine\My -DnsName localhost -SSLServerAuthentication |
? {($_.FriendlyName -eq 'IIS Express Development Certificate') -and
($_.SignatureAlgorithm.FriendlyName -ieq 'sha256RSA') -and
($_.EnhancedKeyUsageList.Count -eq 1)}
if ($certs.Count -eq 0)
{
Write-Error 'Cannot find any SHA256 certificate generated by IIS Express.
Please make sure that the latest version of IIS Express is installed.'
}
else
{
foreach ($cert in $certs)
{
Export-Certificate -Cert $cert.PSPath -FilePath $cerFile -Type CERT | Out-Null
$cerFile = Resolve-Path $cerFile
# https://social.technet.microsoft.com/Forums/ie/en-US/aac8cfcd-6bd2-423f-895b-a6612459eb16/importcertificate-without-confirmation-ignore-security-warnings?forum=winserverpowershell
$cert2 = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($cerFile)
$rootStore = Get-Item cert:\LocalMachine\Root
$rootStore.Open("ReadWrite")
$rootStore.Add($cert2)
$rootStore.Close()
Remove-Item $cerFile -Force
}
Write-Host 'Successfully installed the certificate to
Trusted Root Certification Authorities of the current user.'
}