SSLCACertificateFile /var/cosign/certs/CA/publickey.pem
A menos que o arquivo PEM contenha realmente o certificado de CA para os certificados cliente que você deseja conceder acesso, isso está incorreto; para fornecer ao apache uma cadeia de certificados, use SSLCertificateChainFile
.
O Apache deve ter o certificado real e quaisquer certificados intermediários usados para assinar / produzir o certificado de terminal, até e incluindo um certificado raiz que seja de confiança dos navegadores.
Para verificar o certificado que eles lhe deram, execute:
openssl verify -CApath /path/to/CA/certs -purpose sslserver -verbose /your/certificate
Independentemente dos problemas de certificado, você está perdendo uma diretiva SSLRequireSSL
em seu vhost; sem isso, o apache não verificará se há uma conexão segura.
Você também não deve usar _default_
como o virtualhost, e está faltando um ServerName
.
Use *: 443 ou IP: 443 como o virtualhost.
Todo vhost deve ter um conjunto ServerName válido e, além disso, um vhost SSL deve ter um ServerName que corresponda ao CN do certificado.
Por exemplo:
<VirtualHost 1.2.3.4:443>
ServerName your.certificates.common.name
ServerAlias any.subject.alternate.names
DocumentRoot /your/protected/content
SSLEngine On
SSLCertificateChainFile /path/to/your/issuers/CA/cert/bundle
SSLCertificateFile /path/to/your/certificate.crt
SSLCertificateKeyfile /path/to/your/private.key
-OR-
SSLCertificateFile /path/to/your/combined.cert-and-keyfile
SSLRequireSSL
</VirtualHost>