Risoluzione degli errori di autenticazione reciproca nel gateway applicazione
Informazioni su come risolvere i problemi di autenticazione reciproca quando si usa il gateway applicazione.
Panoramica
Dopo aver configurato l'autenticazione reciproca in un gateway applicazione, possono verificarsi alcuni errori che vengono visualizzati quando si tenta di usare l'autenticazione reciproca. Alcune cause comuni di errori includono:
- Caricamento di un certificato o una catena di certificati senza un certificato radice della CA
- Caricamento di una catena di certificati con più certificati radice della CA
- Caricamento di una catena di certificati che conteneva solo un certificato foglia senza un certificato della CA
- Errori di convalida dovuti alla mancata corrispondenza del DN dell'autorità emittente
Verranno illustrati diversi scenari in cui ci si può imbattere e come risolverli. Verranno quindi esaminati i codici di errore e spiegate le cause probabili di alcuni codici di errore che potrebbero essere visualizzati tramite l'autenticazione reciproca. Tutti gli errori di autenticazione del certificato client devono generare un codice di errore HTTP 400.
Risoluzione dei problemi di scenario: problemi di configurazione
Esistono alcuni scenari che ci si potrebbe trovare di fronte quando si prova a configurare l'autenticazione reciproca. Verrà illustrato passo passo come risolvere alcune delle insidie più comuni.
Certificato autofirmato
Problema
Il certificato client caricato è un certificato autofirmato e genera il codice di errore ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate.
Soluzione
Eseguire un doppio controllo per verificare che il certificato autofirmato in uso contenga l'estensione BasicConstraintsOid = "2.5.29.19", che indica che l'oggetto può fungere da CA. In questo modo si garantisce che il certificato usato sia un certificato della CA. Per ulteriori informazioni su come generare certificati client autofirmati, vedere Certificati client attendibili.
Risoluzione dei problemi di scenario: problemi di connettività
Si potrebbe essere riusciti a configurare l'autenticazione reciproca con facilità, ma ci si imbatte in problemi durante l'invio di richieste al gateway applicazione. Nella sezione seguente vengono affrontati alcuni problemi e soluzioni comuni. È possibile trovare la proprietà sslClientVerify nei log di accesso del gateway applicazione.
SslClientVerify è NONE
Problema
La proprietà sslClientVerify viene visualizzata come "NONE" nei log di accesso.
Soluzione
Questo valore viene visualizzato quando il client non invia un certificato client quando si invia una richiesta al gateway applicazione. Ciò potrebbe verificarsi se il client che invia la richiesta al gateway applicazione non è configurato correttamente per l'uso dei certificati client. Un modo per verificare che la configurazione dell'autenticazione client nel gateway applicazione funzioni come previsto è tramite il comando OpenSSL seguente:
openssl s_client -connect <hostname:port> -cert <path-to-certificate> -key <client-private-key-file>
Il flag -cert
è il certificato foglia, il flag -key
è il file della chiave privata del client.
Per ulteriori informazioni su come usare il comando OpenSSL s_client
, vedere la pagina di manuale.
SslClientVerify è FAILED
Problema
La proprietà sslClientVerify viene visualizzata come "FAILED" nei log di accesso.
Soluzione
Esistono diverse possibili cause di errori nei log di accesso. Di seguito è riportato un elenco di cause comuni di errore:
- Impossibile ottenere il certificato dell'autorità di certificazione: non è stato possibile trovare il certificato dell'autorità di certificazione del certificato client. Di norma ciò significa che la catena di certificati CA del client attendibile non è completata nel gateway applicazione. Convalidare che la catena di certificati della CA del client attendibile caricata nel gateway applicazione sia completa.
- Impossibile ottenere il certificato dell'autorità di certificazione locale: analogamente a Impossibile ottenere il certificato dell’autorità di certificazione, non è stato possibile trovare il certificato dell'autorità di certificazione del certificato client. Di norma ciò significa che la catena di certificati CA del client attendibile non è completata nel gateway applicazione. Convalidare che la catena di certificati della CA del client attendibile caricata nel gateway applicazione sia completa.
- Impossibile verificare il primo certificato: non è possibile verificare il certificato client. Questo errore si verifica in particolare quando il client presenta solo il certificato foglia con un'autorità di certificazione non attendibile. Convalidare che la catena di certificati della CA del client attendibile caricata nel gateway applicazione sia completa.
- Impossibile verificare l'autorità di certificazione del client: questo errore si verifica quando la configurazione VerifyClientCertIssuerDN è impostata su true. Ciò si verifica in genere quando il DN dell'autorità di certificazione del certificato client non corrisponde al nome ClientCertificateIssuerDN estratto dalla catena di certificati della CA client attendibile caricata dal cliente. Per ulteriori informazioni sul modo in cui il gateway applicazione estrae ClientCertificateIssuerDN, vedere Gateway applicazione che estrae il DN dell'autorità di certificazione. Come procedura consigliata, assicurarsi di caricare una catena di certificati per ogni file nel gateway applicazione.
- Scopo del certificato non supportato: assicurarsi che il certificato client designi Utilizzo chiavi avanzato per Autenticazione client ( 1.3.6.1.5.5.7.3.2). Altre informazioni sulla definizione dell'utilizzo della chiave estesa e dell'identificatore di oggetto per l'autenticazione client sono disponibili in RFC 3280 e RFC 5280.
Per altre informazioni su come estrarre l'intera catena di certificati della CA client attendibile da caricare nel gateway applicazione, vedere come estrarre catene di certificati CA client attendibili.
Risoluzione dei problemi relativi al codice errore
Se si visualizza uno dei codici errore seguenti, sono disponibili alcune soluzioni consigliate per risolvere il problema che ci si potrebbe trovare di fronte.
Codice errore: ApplicationGatewayTrustedClientCertificateMustSpecifyData
Causa
Mancano dati relativi al certificato. Il certificato caricato potrebbe essere un file vuoto senza alcun dato relativo al certificato.
Soluzione
Convalidare che il file del certificato caricato non contenga dati mancanti.
Codice errore: ApplicationGatewayTrustedClientCertificateMustNotHavePrivateKey
Causa
È presente una chiave privata nella catena di certificati. Non deve essere presente una chiave privata nella catena di certificati.
Soluzione
Eseguire un doppio controllo della catena di certificati caricata e rimuovere la chiave privata che faceva parte della catena. Ricaricare la catena senza la chiave privata.
Codice errore: ApplicationGatewayTrustedClientCertificateInvalidData
Causa
Esistono due possibili cause alla base di questo codice errore.
- L'analisi non è riuscita poiché la catena non è stata presentata nel formato corretto. Il gateway applicazione prevede che una catena di certificati sia in formato PEM e che i dati dei singoli certificati siano delimitati.
- Il parser non ha trovato nulla da analizzare. Il file caricato può potenzialmente contenere solo i delimitatori, ma non i dati del certificato.
Soluzione
A seconda della causa, esistono due possibili soluzioni di questo errore.
- Convalidare che la catena di certificati caricata sia nel formato CORRETTO (PEM) e che i dati del certificato siano stati delimitati correttamente.
- Verificare che il file del certificato caricato contenga i dati del certificato oltre ai delimitatori.
Codice errore: ApplicationGatewayTrustedClientCertificateDoesNotContainAnyCACertificate
Causa
Il certificato caricato conteneva solo un certificato foglia senza un certificato della CA. Il caricamento di una catena di certificati contenente certificati della CA e un certificato foglia è accettabile, in quanto il certificato foglia verrebbe semplicemente ignorato. Tuttavia, un certificato deve disporre di una CA.
Soluzione
Eseguire un doppio controllo della catena di certificati caricata, per verificare che non contenga solo il certificato foglia. L'estensioneBasicConstraintsOid = "2.5.29.19" deve essere presente e indicare che l'oggetto può fungere da CA.
Codice errore: ApplicationGatewayOnlyOneRootCAAllowedInTrustedClientCertificate
Causa
La catena di certificati conteneva più certificati della CA radice o non conteneva certificati della CA radice.
Soluzione
I certificati caricati devono contenere esattamente un certificato della CA radice e, tuttavia, il numero di certificati della CA intermedia necessario.