Всплывающее окно для выбора клиентских сертификатов показывает в случайное время и позволяет мне получить доступ к защищенным каталогам без сертификата - PullRequest
0 голосов
/ 09 октября 2018

Я сделал 2 CSR (один для сервера и один для клиента, показанный ниже как ssatClient и ssatServer ).После подписания их действующим сертификатом CA я проверил их.Оба они показывают, что с проверкой все в порядке.

Я использую xampp для запуска сервера APACHE с SSL-соединением.

Конфигурация

Это содержимое httpd-ssl.conf

Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on 

SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLPassPhraseDialog  builtin
SSLSessionCache "shmcb:D:/xamppNew/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost _default_:443>

DocumentRoot "D:/xamppNew/htdocs"
ServerName SSAT:443
ServerAdmin admin@example.com
ErrorLog "D:/xamppNew/apache/logs/error.log"
TransferLog "D:/xamppNew/apache/logs/access.log"

SSLEngine on

SSLCertificateFile "conf/ssl.crt/ssatServer.crt"
SSLCertificateKeyFile "conf/ssl.key/ssatServer.key"
SSLCertificateChainFile "conf/SSAT_ca-chain.crt"
#SSLCACertificatePath conf/ssl.key/SSAT.crt"
#SLCACertificateFile "conf/ssl.crt/SSAT.crt"
#SSLVerifyClient require 
#SSLCACertificateFile conf/ssl.crt/SSAT.crt 
#SSLVerifyDepth 1
SSLVerifyClient require
SSLCACertificateFile "conf/SSAT_ca-chain.crt"

<Location /protected> 
     SSLVerifyClient require 
     SSLVerifyDepth 3
</Location>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "D:/xamppNew/apache/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
</VirtualHost>                 

Настройка виртуального хоста показана ниже вфайл httpd-vhosts.conf

<VirtualHost *:443>
    ServerName SSAT
    SSLEngine on
    SSLCertificateFile "conf\ssl.crt\ssatServer.crt"
    SSLCertificateKeyFile "conf\ssl.key\ssatServer.key"
    SSLCACertificateFile "conf\SSAT_ca-chain.crt"
   <Location /protected> 
        SSLVerifyClient require 
        SSLVerifyDepth 3
    </Location>

</VirtualHost>

Проблема

Я пытаюсь аутентифицировать клиента через сайт ssat: 443.Настройкатег с параметром SSLVerifyClient require в виртуальном хосте позволяет пользователям получать доступ к этому каталогу, только если у них есть действительный сертификат, подписанный моим CA.Независимо от того, удаляю ли я доверенные сертификаты или личные сертификаты в Google Chrome, я все равно могу получить доступ к каталогу / protected, к которому у меня нет доступа без действительного сертификата клиента.Иногда, если я пытаюсь восстановить соединение через 30 или 40 минут, я получаю всплывающее окно, которое позволяет мне выбрать сертификат клиента.После его выбора сервер позволяет мне перейти на вкладку / protected и с этого момента до следующего всплывающего окна, он дает мне доступ к нему независимо от того, сколько раз я перезагружаю сервер или удаляю / повторно добавляю действительные и недействительные сертификаты.

Вопросы

Я что-то не так делаю в конфигурации?«Соединение защищено» всегда работает для сертификата сервера.Можно ли как-нибудь удалить «кэшированные» сертификаты, чтобы каждый раз, когда я захочу получить доступ к вкладке / protected, он будет запрашивать сертификат через всплывающее окно?

Извините за длинный пост

...