PowerShell Ssl SelfSigned Certificate
Links: OpenSslSelfSignedCertificate <- Recommend using openssl
2024 Microsoft example
https://learn.microsoft.com/en-us/dotnet/core/additional-tools/self-signed-certificates-guide
PowerShell steps
$cert = New-SelfSignedCertificate -DnsName @("contoso.com", "www.contoso.com") -CertStoreLocation "cert:\LocalMachine\My" $certKeyPath = "c:\certs\contoso.com.pfx" $password = ConvertTo-SecureString 'password' -AsPlainText -Force $cert | Export-PfxCertificate -FilePath $certKeyPath -Password $password $rootCert = $(Import-PfxCertificate -FilePath $certKeyPath -CertStoreLocation 'Cert:\LocalMachine\Root' -Password $password)
2024 Powershell instructions
Basic cert
New-SelfSignedCertificate -DnsName "www.example.com" -CertStoreLocation "Cert:\LocalMachine\My"
Advanced cert with 10y lifetime
$today = Get-Date $after = $today.AddYears(10) $certificate = New-SelfSignedCertificate -DnsName "www.example.com", "example.com" -CertStoreLocation "Cert:\LocalMachine\My" ` -KeySpec "KeyExchange" -KeyUsage "DigitalSignature," "KeyEncipherment" ` -Type "SSLServerAuthentication" -NotAfter $after ` -Subject "CN=www.example.com, OU=IT, O=My Company Name, L=City, S=State, C=Country" ` -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" ` -HashAlgorithm "SHA256" -KeyLength 2048
Export from cert store to PFX
$cert = Get-ChildItem -Path "Cert:\LocalMachine\My\" -DnsName "www.example.com" $thumb = $cert.Thumbprint Export-PfxCertificate -Cert "Cert:\LocalMachine\My\$thumb" -FilePath "C:\cert\examplecert.pfx" -Password $pwd
Install on IIS Web Server
# Open IIS Manaer -> Website -> Server Certificates -> Import
* For Apache convert pfx to pkcs12
openssl pkcs12 -in examplecert.pfx -out examplecert.pkcs12