Назад | Перейти на главную страницу

Как исключить некоторый путь / страницу из сертификации клиента в Apache 2

Я пытаюсь настроить сервер Apache с включенной сертификацией клиента. Чтобы клиенты могли получить доступ к контенту с действующим клиентским сертификатом.

Скажем, у меня есть сервер, работающий как

https://myserver/myservice/

Также мне нужно предоставить моим клиентам интерфейс для получения их клиентских сертификатов, предоставив некоторую информацию для аутентификации

https://myserver/myservice/register

После проверки информации о загрузке возвращается сертификат клиента.

Если я правильно понимаю, этот путь следует исключить из механизма сертификации клиентов просто потому, что он используется для генерации сертификатов. Итак, вопрос в том, как я могу указать конфигурацию httpd для этого?

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

ProxyPass /myservice/register http://localhost:4444/register

<Virtualhost *:443>
    ServerName myserver
    DocumentRoot /path/to/my/server/root
    ProxyPass /myservice/ ajp://localhost:8009/myservice/
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCertificateFile /path/to/server.cert
    SSLCertificateKeyFile /path/to/server.key
    ...
    SSLVerifyClient require
    SSLVerifyDepth 10
    SSLCACertificateFile /path/to/ca.buddle.pem
</Virtualhost>

С этой конфигурацией я могу получить сертификат клиента из

http://myserver/myservice/register

затем получить доступ к сервису, используя его. Однако мне не удалось установить его на https, чтобы я мог закрыть порт 80.

Теперь у меня есть решение, просто используя или для исключения целевого URL-пути.

<Virtualhost *:443>
    ServerName myserver
    DocumentRoot /path/to/my/server/root
    ProxyPass /myservice/register http://localhost:4444/register
    ProxyPass /myservice/ ajp://localhost:8009/myservice/
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCertificateFile /path/to/server.cert
    SSLCertificateKeyFile /path/to/server.key
    ...
    SSLVerifyClient require
    SSLVerifyDepth 10
    SSLCACertificateFile /path/to/ca.buddle.pem

    <LocationMatch ^/myservice/register$>
        SSLVerifyClient none
    </LocationMatch>

</Virtualhost>