Validando clientes HTTPS com certificados assinados por outras CAs que não a CA do servidor

Validando clientes HTTPS com certificados assinados por outras CAs que não a CA do servidor

Eu tenho um servidor web Apache, SSL que possui um certificado de servidor assinado por uma CA oficial confiável. Posso configurar o Apache SSL para aceitar clientes com certificados válidos assinados por CAs diferentes da CA que assinou o certificado do servidor?

Estou recebendo uma ssl_error_unknown_ca_alertmensagem apesar de ter configurado outras CAs no Apache e o servidor ter iniciado sem erros. Criei um arquivo contendo o certificado CA da CA que assinou o certificado do servidor e os outros certificados das CAs nas quais desejo confiar. Então apontei a SSLCertificateChainFilediretiva para este arquivo.

Estou usando o Apache 2.2.22

Editar:

Estou usando
SSLCertificateFileapontando para o certificado do servidor
SSLCertificateKeyFileapontando para a chave do servidor
SSLCertificateChainFileapontando para a cadeia de certificados que assinou o certificado do servidor
SSLCACertificateFileapontando para um arquivo com todas as cadeias de certificados que desejo que sejam aceitas

SSLVerifyClient require
SSLVerifyDepth  1

O Apache reconhece todos eles no log quando reinicio o servidor e não há erros. Mesmo assim, ainda recebi um ssl_error_certificate_unknown_alerterro. Verifiquei também que a cadeia de certificados do cliente está presente na SSLCACertificateFilecomparação por texto no Meld.

Responder1

Descobri qual é o problema. O certificado é assinado por uma cadeia de 3 CAs e eu configurei SSLVerifyDepth como 1. Configurei como 10 e funcionou.

Responder2

Acredito que você queira um diretório contendo os certificados que deseja usar. Pode ser necessário usar alguma mágica SSL para criar os links simbólicos para os certificados. Vermod_ssl SSLCACertificatePath Uso adequado ou qual é a melhor maneira de lidar com várias CAs de certificado de cliente aceitáveispara os comandos necessários.

informação relacionada