Negli ambienti di test può tornare utile avere un certificato self signed.

Lo si può generare con un comando PowerShell come questo:

PowerShell

$dnsName= "adfs.sgart.local";

$cert = New-SelfSignedCertificate -KeyLength 2048 -NotAfter (Get-Date).AddYears(2) -certstorelocation "cert:\LocalMachine\My" -dnsname $dnsName
viene aggiunto un certificato adfs.sgart.local nel certificate store LocalMachine\My.

Per vedere se il certificato è stato caricato correttamente:

PowerShell

dir  Cert:\LocalMachine\My | where-object { $_.subject -like "*$dnsName*"}
oppure da mmc.exe
LocalComputer\My
LocalComputer\My

Il certificato può anche essere esportato per poi importarlo su un altra macchina:

PowerShell

#per $cert e $dnsName vedi esempio precedente
#$cert = dir  Cert:\LocalMachine\My | where-object { $_.subject -eq "CN=$dnsName"}

# prima creo una password per proteggerlo
$pwdSecure = ConvertTo-SecureString -String ‘Fg5lWW@_34!1’ -Force -AsPlainText

#lo salvo nel percorso locale con nome dns e data di esportazione
$certFileName = "$pwd\$($cert.DnsNameList[0].Unicode)-$(Get-Date -Format yyyymmdd).pfx"

# recupero la posizione univoca
$certPath = $cert.PSPath

# lo  esporto su file system
Export-PfxCertificate -cert $certPath -FilePath $certFileName  -Password $pwdSecure 
La variabile di sistema $pwd (print working directory), ritorna il percorso corrente.
Equivale all'output del comando Get-location (alias pwd)

Per importarlo sulla macchina di destinazione in LocalMachine\My:

PowerShell

$pwdSecure = ConvertTo-SecureString -String ‘Fg5lWW@_34!1’ -Force -AsPlainText

Import-PfxCertificate .\adfs.sgart.local-20185017.pfx -CertStoreLocation Cert:\LocalMachine\My -Password $pwdSecure

Con PowerShell possiamo anche verificare quali sono i certificati in scadenza entro i prossimi 20 giorni:

PowerShell

$dtExpire = (Get-Date).AddDays(20)

dir Cert:\LocalMachine\My\ | Where-Object {$_.NotAfter -lt $dtExpire}
oppure, cercare un certificato con un determinato thumbprint

PowerShell

dir Cert:\LocalMachine\My\ | Where-Object {$_.Thumbprint -eq "0BA874A0224012AA05B2D46C61D5B5E8E2A69C820"} | select *

Mentre se voglio cercare tutti i certificati scaduti in tutti gli store di LocalMachine, uso il parametro -Recurse:

PowerShell

$dtExpire = get-date

dir Cert:\LocalMachine\ -Recurse  | Where-Object {$_.NotAfter -lt $dtExpire} | select Thumbprint, NotAfter, Subject, PSParentPath
Tags:
Active Directory20 ADFS5 .NET66 PowerShell200 SharePoint498 Windows Server20 Windows Server 20129
Potrebbe interessarti anche: