O servidor suporta três níveis de autenticação de cliente e dois tipos de controle de acesso, com base nas informações de certificação do cliente.
O nível é definido com a diretiva SSLCLientAuth:
Se você escolher o nível obrigatório de autenticação de clientes, o servidor protegido exige um certificado de todos os clientes que fazem um pedido https. O servidor valida os clientes verificando os certificados da raiz de CA de confiança no banco de dados de chaves local. Um certificado de raiz de CA de confiança é um certificado assinado por uma autoridade de certificação que é designada como uma CA de confiança no seu servidor Web.
O servidor estabelece uma conexão protegida se o cliente possui um certificado válido. O servidor nega o pedido se o cliente possuir um certificado que expirou ou se o certificado estiver assinado por uma autoridade de certificação (CA) que não está designada como uma CA de confiança no servidor.
Lembre-se de que a autenticação SSL de clientes aumenta o tráfego na rede.
Se você escolher o nível opcional, o servidor exige um certificado do cliente. Se o cliente não fornecer um, ainda assim será estabelecida uma conexão protegida. O servidor nega o pedido se o cliente fornecer um certificado que expirou ou se o certificado estiver assinado por uma autoridade de certificação (CA) que não está designada como uma CA de confiança no servidor.
Lembre-se de que a autenticação SSL de clientes aumenta o tráfego na rede.
Se você escolher nenhum, o servidor protegido não exige certificados dos clientes.
O tipo é definido com as diretivas SSLFakeBasicAuth ou SSLClientAuthRequire.
Nota: SSLClientAuthRequire é o tipo preferido de autenticação de clientes.
O uso de SSLFakeBasicAuth não é recomendado. Os arquivos de senhas que foram gerados para utilização com o código SSL do Apache (ou mod_ssl e Apache) não funcionarão com IBM HTTP Server porque o formato do nome distinto é diferente.
O tipo SSLFakeBasicAuth é um método muito simples de execução de autenticação de clientes. Se você especificar SSLFakeBasicAuth, o nome distinto do certificado do cliente e a senha (que é "password") são codificados em Base64 e colocados no cabeçalho da autorização. O módulo mod_ibm_ssl precisa ser o primeiro módulo na lista de módulos para que os módulos de autenticação subseqüentes possuam o ID e senha de autenticação básica falsa disponíveis. Lembre-se que o suporte de autenticação básica dentro de um host virtual específico não funcionará porque o ID de usuário e senha fornecidos pelo usuário serão sobrescritos pelo nome distinto e senha (que é "password") do cliente.
Para exibir o nome distinto a partir de um certificado do cliente, crie um programa CGI para imprimir a variavel de ambiente SSL_CLIENT_DN.
O suporte SSLClientAuthRequire mais extenso permite que o Webmaster defina expressões lógicas que contêm os atributos x509. Estas expressões lógicas são então comparadas às informações do certificado do cliente para ou conceder ou negar o acesso a um objeto. Antes de todo esse processamento poder ocorrer, no entanto, o GSK primeiro valida o certificado do cliente para garantir que ele foi assinado por uma autoridade de certificação de confiança.
A diretiva SSLClientAuthRequire permite que um Webmaster crie uma expressão lógica consistindo em verificações de atributos com links com AND, OR e NOTs. Parênteses também são permitidos. Por exemplo:
SSLClientAuthRequire (CommonName = "Fred Smith" OR CommonName = "John Deere") AND Org = IBMsignifica que o objeto não será servido a não ser que o certificado do cliente contenha um nome comum Fred Smith ou John Deere e a organização deve ser IBM.
Para as verificações de atributos, as únicas comparações válidas são igual e não igual (= e !=). Cada verificação de atributo pode ser unida com AND, OR, ou NOT (também &&, ||, e !). Quando múltiplas diretivas SSLClientAuthRequire são especificadas por um recurso, o efeito no recurso é como se os valores estivessem unidos por operadores Booleanos E.
Parênteses também podem ser usados para agrupar comparações. Se o valor do atributo conter um caractere não alfanumérico, o valor deve ser delimitado com aspas.
Os atributos válidos são:
IssuerStateOrProvince IssuerCommonName IssuerOrgUnit IssuerCountry IssuerLocality IssuerOrg IssuerEmail StateOrProvince CommonName OrgUnit Country Locality Org Email
Também são válidos os nomes curtos:
IST, ICN, IOU, IC, IL, IO, IE, ST, CN, OU, C, L, O, E