После некоторого исследования я понял, что не могу использовать SSLVerifyClient
успешно в любом месте, кроме контекста сервера, благодаря текущим усилиям по смягчению последствий CVE-2009-3555.
В частности, из-за CVE-2009-3555 различные версии OpenSSL, Apache / mod_ssl и некоторые браузеры перестали разрешать повторное согласование SSL. Так SSLVerifyClient require
в контексте Directory, Location или .htaccess вызывает сбой службы (например, различные эти примеры потерпеть поражение). После CVE-2009-3555 был опубликован RFC 5746, который поддерживает более новые версии OpenSSL, Apache / mod_ssl и т. Д.
Q1: Это резюме приблизительно верно?
Моя непосредственная проблема связана с общим веб-хостингом. У меня нет доступа к httpd.conf и нет возможности обновить программное обеспечение.
Q2: Если я найду компанию общего веб-хостинга, использующую последнее программное обеспечение, которое поддерживает RFC 5746 TLS Renegotiation Indication (в отличие от GoDaddy), удастся ли мне добавить .htaccess:
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile /path/to/my/ca.crt
где ca.crt мой ублюдочный самоподписанный сертификат CA?
mod_ssl документы не говори SSLCACertificateFile
можно использовать .htaccess, но я не получаю типичную ошибку «Здесь запрещено», когда помещаю его туда.
Q1: Да, правильно.
Q2: Нет, не думаю, что это сработает.
По конфигурации, есть ли причина SSLCACertificateFile
не мог войти в более широкий раздел конфигурации, например VirtualHost
блок?
Но, помимо этого, клиентские сертификаты, вероятно, являются безнадежным делом в этой системе, если предположить, что GoDaddy действительно исправил для отключения повторного согласования (с ними я не буду предполагать). Я не знаю никакого способа обойти требование, чтобы аутентификация сертификата клиента требовала повторного согласования.