Я расследовал это, и он работает с опцией apache SSL
SSLVerifyClient optional_no_ca
У меня следующая конфигурация виртуального хоста.
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLOptions +StdEnvVars
SSLCertificateFile /root/test-https-certificate/test.company.com.crt
SSLCertificateKeyFile /root/test-https-certificate/research.company.com.key
SSLCACertificateFile /root/test-https-certificate/sub.class1.server.ca.pem
SSLCARevocationPath /root/ssl-authentication/crl
SSLCARevocationFile /root/ssl-authentication/crl/crl.pem
SSLCADNRequestFile /root/ssl-authentication/client-cert-issuing-ca.crt
<Directory /var/www/vhosts/test.com/httpsdocs/topsecret>
SSLRequireSSL
SSLVerifyClient optional_no_ca
SSLVerifyDepth 10
</Directory>
DocumentRoot /var/www/vhosts/test.com/httpsdocs/topsecret
ServerName test.company.com
</VirtualHost>
Моя проблема теперь в том, что каждый, у кого есть сертификат или нет, может получить доступ к моей папке с ограниченным доступом, читая документацию о mod_ssl apache, я нашел вариант SSLRequire но как я могу это реализовать, когда я использую его в своем теге, он перенаправляет меня на значение по умолчанию DocumentRoot Apache.
И другие сомнения .. с точки зрения безопасности то, что я делаю правильно? Наличие самозаверяющего сертификата для клиентов и сертификата, подписанного официальным лицом для сервера?