Descobriu qual é o problema. O certificado é assinado por uma cadeia de 3 CAs e eu configurei SSLVerifyDepth para 1. Defina como 10 e funcionou.
Eu tenho um servidor web apache, ssl, que tem 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 um ssl_error_unknown_ca_alert
, embora tenha configurado outras autoridades de certificação no apache e o servidor tenha sido iniciado sem erros.
Eu criei um arquivo contendo o certificado de CA da CA que assinou o certificado do servidor e os outros certificados de CAs das CAs que desejo confiar. Então apontei a diretiva SSLCertificateChainFile
para este arquivo.
Estou usando o Apache 2.2.22
Editar:
Estou usando o SSLCertificateFile
apontando para o certificado do servidor
SSLCertificateKeyFile
poiting para a chave do servidor
SSLCertificateChainFile
apontando para a cadeia de certificados que assinou o certificado do servidor
SSLCACertificateFile
apontando para um arquivo com todas as cadeias de certificados que eu quero ser aceito
SSLVerifyClient require
SSLVerifyDepth 1
O Apache reconhece todos eles no log quando eu reinicio o servidor e não há erros. Ainda assim, ainda tenho um erro ssl_error_certificate_unknown_alert
.
Também verifiquei que a cadeia de certificados do cliente está presente no SSLCACertificateFile
pelo texto que compara no Meld.
Eu acredito que você quer um diretório contendo os certificados que você deseja usar. Você pode precisar usar alguma magia SSL para criar os links simbólicos para os certificados. Consulte mod_ssl SSLCACertificatePath Proper Uso ou Qual é a melhor maneira de lidar com várias CAs de certificado de cliente aceitáveis para os comandos necessários.
Tags ssl apache-2.2