Il server supporta tre livelli di autenticazione del client e due tipi di controllo per l'accesso basati sulle informazioni contenute nel certificato del client.
Tale livello viene impostato mediante l'istruzione SSLCLientAuth:
Se viene selezionato il livello di autenticazione del client richiesto, il server richiede a tutti i client un certificato mediante una richiesta https. Il server autorizza i client verificando i certificati CA di root sicura nel database di chiavi locale. Un certificato CA di root sicura è un certificato firmato da un'autorità di certificazione indicata come CA sicura sul server utilizzato.
Se il client dispone di un certificato valido, il server stabilisce una connessione sicura. Se il certificato del client è scaduto oppure è firmato da una CA non indicata come sicura sul server, il server non stabilisce la connessione con il client.
Tenere presente che l'autenticazione del client SSL aumenta il traffico di rete.
Se si seleziona il livello facoltativo, il server richiede un certificato al client. Se il client non fornisce alcun certificato, la connessione sicura verrà stabilita ugualmente. Il server non stabilirà la connessione solo se il client fornisce un certificato scaduto o se è firmato da una CA non indicata come sicura sul server.
Tenere presente che l'autenticazione del client SSL aumenta il traffico di rete.
Se viene selezionato nessuno, il server non richiederà alcun certificato ai client.
Il tipo di controllo viene impostato mediante le istruzioni SSLFakeBasicAuth o SSLClientAuthRequire.
Nota: il tipo di autenticazione del client consigliato è SSLClientAuthRequire
Si consiglia di non utilizzare l'istruzione SSLFakeBasicAuth. I file per la password creati per utilizzare la codifica Apache SSL (o mod_ssl e Apache) non funzioneranno con IBM HTTP Server in quanto il formato del nome è differente.
Il tipo SSLFakeBasicAuth è un metodo molto semplice per eseguire l'autenticazione del client. Se si specifica SSLFakeBasicAuth, il nome del certificato del client e la password (ovvero "password") verranno codificati mediante la codifica Base64 e verranno ubicati nel titolo dell'autorizzazione. E' necessario che il modulo mod_ibm_ssl sia il primo modulo dell'elenco, in modo che i moduli di autenticazione seguenti abbiano l'ID utente per l'autenticazione di base falso e la password disponibile. Tenere presente che il supporto dell'autenticazione di base contenuto in un host virtuale specificato non funzionerà, in quanto l'ID utente e la password forniti dall'utente saranno sostituiti dal nome e dalla password ("password") del client.
Per visualizzare il nome di un certificato del client, creare un programma CGI per stampare la variabile di ambiente SSL_CLIENT_DN.
Il supporto SSLClientAuthRequire consente al webmaster di definire le espressioni logiche che contengono gli attributi x509. Queste espressioni vengono paragonate alle informazioni contenute nel certificato del client per garantire o negare l'accesso ad un oggetto. Prima che tutte queste operazioni possano essere eseguite, tuttavia, GSK convalida il certificato del client in modo che venga firmato da un'autorità di certificazione sicura.
L'istruzione SSLClientAuthRequire consente ad un webmaster di creare un'espressione logica che consiste in una serie di attributi collegati con AND, OR e NOT. E' possibile utilizzare anche le parentesi. Ad esempio:
SSLClientAuthRequire (CommonName = "Federico Verdi" OR CommonName = "Giovanni Volpe") AND Org = IBMsignifica che l'operazione non sarà eseguita a meno che il certificato del client non contenga il nome Federico Verdi o Giovanni Volpe e la società IBM.
Gli unici attributi di paragone validi sono uguale o non uguale (= and !=). Ciascun attributo viene collegato con AND, OR e NOT (anche &&, || e !). Se per un'unica risorsa vengono specificate più istruzioni SSLClientAuthRequire, sulla risorsa si avrà un effetto equivalente all'unione degli operatori booleani AND.
Per unire più paragoni è possibile utilizzare le parentesi. Se il valore dell'attributo contiene un carattere non alfanumerico, il valore deve essere delimitato da apici.
Di seguito sono riportati gli attributi validi:
IssuerStateOrProvince IssuerCommonName IssuerOrgUnit IssuerCountry IssuerLocality IssuerOrg IssuerEmail StateOrProvince CommonName OrgUnit Country Locality Org Email
Inoltre sono validi anche i seguenti nomi abbreviati:
IST, ICN, IOU, IC, IL, IO, IE, ST, CN, OU, C, L, O, E