Исключить путь из SSLVerifyClient требуют - PullRequest
0 голосов
/ 04 октября 2018

У меня Apache 2.4.18 (Ubuntu) работает как обратный прокси.Чтобы защитить свою личную среду, я добавил SSLVerifyClient require и пока проблем нет.

Однако Jira хочет получить доступ к себе, чтобы загрузить строки для некоторых языков.Согласно журналу Jira это https://{DOMAIN_URL}/rest/gadgets/1.0/g/messagebundle/nl_NL/gadget.common%2Cgadget.project, где gadget.common%2Cgadget.project может быть разным, в зависимости от того, для какого модуля требуется какая-то строка перевода.

Хорошо, хорошо.Поэтому, чтобы решить это решение, я подумал о том, чтобы сделать этот URL доступным для Jira, и поэтому пропустите SSLVerifyClient только для этого конкретного URL.

Моя текущая конфигурация:

<VirtualHost *:80>
    ServerName {DOMAIN}
    Redirect permanent / https://{DOMAIN}
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin info@{DOMAIN}
        ServerName {DOMAIN}

        <Location / >
            Options FollowSymLinks
                AllowOverride None
        </Location>

        Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"

        SSLEngine       on
        SSLCompression      Off
        SSLProtocol         ALL -SSLv2 -SSLv3
        SSLHonorCipherOrder     On
        SSLCipherSuite      EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
        SSLCertificateFile  {SSL}/fullchain.pem
        SSLCertificateKeyFile   {SSL}/privkey.pem

        SSLCACertificateFile    {PATH}/ca.crt
        SSLVerifyClient     require
        SSLStrictSNIVHostCheck  on
        SSLVerifyDepth      1

        ProxyPreserveHost On
        ProxyRequests off
        ProxyPass / http://localhost/
        ProxyPassReverse / http://localhost/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
</IfModule>

Я попытался добавить следующеедва фрагмента после SSLVerifyDepth 1

<Directory "/rest/gadgets">
    SSLVerifyClient      none
</Directory>

И

<Location /rest/gadgets>
        SSLVerifyClient none
</Location>

Однако я проверил https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html (Аутентификация клиента и Контроль доступа), однако оба они не работают.Я не совсем уверен, но, возможно, указанный путь в Location и Directory не правильный.Я хотел сделать его универсальным и просто проверить, содержит ли первая часть URL /rest/gadgets.

Надеюсь, мой вопрос несколько ясен.

1 Ответ

0 голосов
/ 04 октября 2018

Похоже, что это ответ на мой вопрос:

<VirtualHost *:80>
    ServerName {DOMAIN}
    Redirect permanent / https://{DOMAIN}
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin info@{DOMAIN}
        ServerName {DOMAIN}

        Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"

        SSLEngine       on
        SSLCompression      Off
        SSLProtocol         ALL -SSLv2 -SSLv3
        SSLHonorCipherOrder     On
        SSLCipherSuite      EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
            SSLCertificateFile  {SSL}/fullchain.pem
            SSLCertificateKeyFile   {SSL}/privkey.pem

        SSLCACertificateFile    {PATH}/ca.crt
        SSLStrictSNIVHostCheck  on

        <Location / >
            SSLVerifyClient     require 
            SSLVerifyDepth      1

            Options FollowSymLinks
                AllowOverride None
        </Location>     

        <Location /rest/gadgets>
                SSLVerifyClient none
        </Location>

        ProxyPreserveHost On
        ProxyRequests off
        ProxyPass / http://localhost/
        ProxyPassReverse / http://localhost/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
</IfModule>

Хитрость заключалась в том, чтобы продлить текущий Location и переместить SSLVerifyClient.Затем добавьте дополнительный Location -каталог с исключенным путем, в данном случае rest/gadgets.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...