Questo è il processo che ho usato su Windows 2012 R2 e versioni successive. Tutto il codice PowerShell è stato eseguito da un prompt di PowerShell elevato. L'automazione completa viene lasciata come esercizio per l'utente.
necessario
Assicurarsi di disporre di un modello sul server dei certificati in cui sia selezionato il pulsante di opzione "Fornisci nella richiesta" nella scheda Oggetto. Poiché non si tratta di una macchina AD, il server dei certificati non è in grado di eseguire una query adeguata di Active Directory per le informazioni.
Esporta la radice
Esportare il certificato dell'autorità di certificazione radice attendibile sul server dei certificati e quindi copiare il file del certificato sul server di destinazione
certutil --% -ca.cert <name of certificate file>
Fidati della radice
Importare quel certificato nell'autorità di certificazione radice attendibile sul server di destinazione
$PathToCertificate=<name of certificate file>
$RootCertificate=Get-PfxCertificate -FilePath $PathToCertificate
$AlreadyExists=Get-ChildItem -Path "Cert:\LocalMachine\Root" | Where-Object { $_.Thumbprint -eq $RootCertificate.Thumbprint }
if ($AlreadyExists -eq $null) { Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" -FilePath $PathToCertificate }
else { Write-Warning "Root certificate already installed" }
Provider di criteri di Active Directory
Determinare l'URL per il provider di criteri di Active Directory
# Get AD Configuration Context
$RootDSE=[System.DirectoryServices.DirectoryEntry]::new("LDAP://RootDSE")
$ConfigContext="CN=Enrollment Services,CN=Public Key Services,CN=Services,"+$RootDSE.configurationNamingContext
# Get name of Enterprise Root Certificate Autority server
$Server=Get-ADObject -SearchBase $ConfigContext -Filter "*"
if ($Server.Count -eq 1) { throw "No Enterprise Root Certificate Autority server exists" }
else { $Server=$Server[1].Name }
# Get Enrollment URL
$ConfigContext="CN=$Server,"+$ConfigContext
$EnrollmentURL=(Get-ADObject -SearchBase $ConfigContext -Filter "*" -Properties "msPKI-Enrollment-Servers" | Select-Object -ExpandProperty "msPKI-Enrollment-Servers").Split("`n") | Where-Object { $_ -like "http*" }
if ($EnrollmentURL -eq $null) { $EnrollmentURL="" }
# Get AD Enrollment Policy URL
$Server=$Server+$RootDSE.configurationNamingContext.Value.Replace("CN=Configuration","").Replace(",DC=",".")
$WMI=Get-WmiObject -ComputerName $Server -Namespace "root\WebAdministration" -Class Application | Where-Object { $_.Path -eq "/ADPolicyProvider_CEP_UsernamePassword" }
if ($WMI -ne $null) { $PolicyURL="https://"+$Server+$WMI.Path+"/service.svc/CEP" }
else { $PolicyURL="" }
Write-Output "Enrollment URL = $EnrollmentURL"
Write-Output "Policy URL = $PolicyURL"
Politica di iscrizione
Aggiungi i criteri di iscrizione al server di destinazione (funziona solo su Windows 2012 e versioni successive. Per istruzioni sulla GUI, vedi sotto). Assicurarsi che il criterio venga aggiunto dopo aver creato il modello non di dominio, altrimenti non verrà visualizzato poiché il criterio non viene aggiornato.
$User="<your domain name>\<your domain user name>"
$Pass="<Your domain password>"
$SecPass=ConvertTo-SecureString -String $Pass -AsPlainText -Force
$Cred=[System.Management.Automation.PSCredential]::new($User,$SecPass)
Add-CertificateEnrollmentPolicyServer -Url $PolicyURL -context Machine -NoClobber -AutoEnrollmentEnabled -Credential $Cred
Ottieni il certificato
Ora dovresti essere in grado di registrarti per un certificato usando il modello desiderato
$DNS="<FQDN of your server>"
$URL=Get-CertificateEnrollmentPolicyServer -Scope All -Context Machine | Select-Object -ExpandProperty Url | Select-Object -ExpandProperty AbsoluteUri
$Enrollment=Get-Certificate -Url $URL -Template "<Template name (not display name)>" -SubjectName "CN=$DNS" -DnsName $DNS -Credential $Cred -CertStoreLocation cert:\LocalMachine\My
$Enrollment.Certificate.FriendlyName=$DNS
Criteri di iscrizione pre-Windows 2012 R2
- Apri i certificati MMC
- Eseguire il drill-down nell'archivio certificati personali
- Fare clic con il tasto destro del mouse su "Certificati" e selezionare Tutte le attività / Operazioni avanzate / Gestisci
- Politiche di iscrizione dal menu contestuale
- Fai clic sul pulsante "Aggiungi"
- Incolla l'URL per il criterio di iscrizione
- Seleziona Nome utente / password come tipo di autenticazione
- Fai clic sul pulsante "Convalida server" e inserisci le credenziali del tuo dominio, incluso il dominio
- Supponendo che tu sia stato in grado di convalidare correttamente, fai clic sul pulsante "Aggiungi"
- Seleziona il criterio di iscrizione e fai clic sul pulsante "Proprietà"
- Assicurati che la casella "Abilita per iscrizione e rinnovo automatici" sia selezionata
- Non ho mai controllato "Richiedi convalida forte durante l'iscrizione", quindi non so cosa faccia