I certificati sono installati, le chiavi private sono presenti e il tunnel continua a fallire l’autenticazione. Una macchina con più certificati può fornire alla VPN un candidato che nessuno intendeva, e il client non ha modo di sapere quale il gateway accetterebbe. Eliminare gli altri è una politica di selezione con conseguenze su ogni servizio della macchina. Restringete invece l’insieme ammissibile, poi confermate quale certificato è stato realmente offerto.

Diversi certificati, uno offerto

I profili VPN nativi di Windows con autenticazione del certificato macchina espongono due filtri che limitano i candidati: un filtro dell’emittente e un filtro dell’uso esteso della chiave. Ridimensionano l’insieme da cui il client può scegliere. Non riparano un certificato inadatto e non garantiscono che il server accetti ciò che resta. Quel confine merita di essere annotato nel registro delle modifiche, perché il prossimo lettore assumerà che il filtro abbia deciso più di quanto abbia deciso.

Il guasto che affrontano è ristretto e specifico. Un certificato valido dell’autorità sbagliata, o uno emesso per uno scopo che il gateway non accetta, viene scelto prima di quello previsto, il che produce un errore di autenticazione accanto a un archivio sano. Due filtri lo trasformano in un insieme abbastanza piccolo da poter essere ragionato, e il resto di questa pagina li applica in ordine.

Ispezionate l’archivio prima di modificare il profilo

Elenco i candidati e le loro proprietà nell’archivio che il profilo usa davvero. Nulla qui esporta una chiave privata, e nessun certificato deve lasciare la macchina:

Get-VpnConnection -Name 'Office' | Select-Object Name, TunnelType, AuthenticationMethod
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject, Issuer, Thumbprint, NotAfter, HasPrivateKey, EnhancedKeyUsageList

Leggete l’output per le proprietà da cui dipende la decisione: una chiave privata utilizzabile, una finestra di validità accettabile, l’emittente previsto e gli scopi nell’estensione. Un certificato può essere presente, correttamente registrato e inutile per questa connessione nello stesso momento. La colonna dell’impronta è quella con cui confronterete più avanti, quindi conservate l’output.

Confermate il profilo e il suo ambito prima di modificare, perché un certificato macchina in LocalMachine, un certificato EAP-TLS utente e l’archivio di chiavi private proprio di un’applicazione sono tre contesti diversi. Usate l’ambito di tutti gli utenti e un contesto amministrativo quando il profilo gestito si trova lì. Creare un secondo profilo con un nome simile nasconde quale configurazione la connessione usi realmente.

Il filtro dell’emittente vuole un oggetto

Il parametro dell’emittente attende un oggetto certificato, non un nome visualizzato né una stringa di impronta nuda. Fornite il certificato dell’autorità approvata da un percorso che avete verificato, nell’archivio a cui appartiene:

$issuerPath = Read-Host 'Certificate-provider path for the approved issuer CA'
$issuer = Get-Item -LiteralPath $issuerPath
Set-VpnConnection -Name 'Office' -MachineCertificateIssuerFilter $issuer

Non sostituite il certificato foglia del client stesso, un’altra autorità con soggetto simile o una radice appena generata solo perché il tipo del parametro lo accetta. Due autorità possono condividere una stringa di soggetto, ed è per questo che l’oggetto conta più del testo. Il riferimento ai cmdlet di Microsoft documenta entrambi i tipi di input, e vale la pena leggerlo prima della prima modifica invece che dopo il tentativo fallito.

Il filtro dell’uso vuole una stringa OID

Il parametro dell’uso esteso della chiave accetta stringhe OID, e lo scopo di autenticazione del client è 1.3.6.1.5.5.7.3.2. Applicarlo limita i candidati ai certificati che portano quello scopo, che è esattamente ciò che vuole una distribuzione con autenticazione del client:

Set-VpnConnection -Name 'Office' -MachineCertificateEKUFilter '1.3.6.1.5.5.7.3.2'

Il valore è una matrice, quindi una distribuzione che richiede più scopi li passa come elenco. Ciò che il filtro non può fare è aggiungere uno scopo a un certificato: è un’espressione di selezione valutata contro estensioni firmate, e nessun filtro le riscrive, quindi un certificato privo dello scopo deve ripassare dalla registrazione.

Tenete la configurazione EAP dei certificati utente separata dal filtraggio dei certificati macchina, perché vivono in luoghi diversi e una modifica all’una spiega raramente un guasto nell’altra. Verificate anche se il dominio o la gestione dei dispositivi possiede il profilo, perché una modifica locale può essere sostituita al successivo aggiornamento dei criteri senza che nessuno tocchi la macchina.

Dimostrate quale certificato ha offerto il client

Stabilite una nuova connessione e leggete le prove di autenticazione di client e server per l’identità che intendevate. Quando più di un certificato soddisfa i filtri, il risultato è un insieme più piccolo anziché una foglia fissata, quindi il tentativo successivo può scegliere un altro membro. Annotate l’impronta che compare in quelle prove e confrontatela con quella registrata dall’archivio.

Un comando riuscito non è un’autenticazione riuscita. Il risultato che vale la pena registrare è il certificato previsto che si autentica secondo i criteri gestiti mentre ogni certificato non correlato resta disponibile ai servizi che ne dipendono. Se il guasto sopravvive a entrambi i filtri, il posto da guardare dopo sono i candidati rimasti e non il profilo nel suo insieme.

Articoli correlati