Aqui está o problema:
SSLCACertificateFile /opt/apache/veri/auth.crt
Como você pode ver em a documentação do apache , SSLCACertificateFile significa o caminho para o certificado da CA para o certificado do cliente, não para o próprio certificado do cliente.
Não há como exigir um certificado de cliente específico como tal. O que você pode fazer, no entanto, é exigir que o certificado seja emitido por uma determinada autoridade de certificação e, em seguida, verificar o CN do certificado.
Então, você precisa pedir ao seu cliente para enviar a parte pública do certificado que assinou o certificado. Você também precisa verificar qual CN seu certificado contém:
$ openssl x509 -in path/to/clientcert.crt -noout -text|grep Subject|grep CN
Subject: C=US, ST=Something, L=Something, O=Organization Name, OU=SomeOU, CN=host.name.example.com
Em seguida, altere sua configuração para ficar assim:
SSLVerifyClient require
SSLRequire %{SSL_CLIENT_S_DN_CN} eq "host.name.example.com"
SSLVerifyDepth 1
SSLCACertificateFile /opt/apache/veri/auth.crt
Isso diz ao Apache que ele aceitará uma conexão SSL, mas somente se o nome do host no certificado for host.name.example.com
e o certificado tiver sido assinado pela autoridade de certificação cujo certificado está em /opt/apache/veri/auth.crt
.
Há mais informações em a documentação do mod_ssl no Apache com vários exemplos de como você pode usar SSLRequire para testar variáveis em certificados de clientes.