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

Как исключить некоторые пути/страницы из клиентской сертификации в 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.

решение1

Теперь у меня есть решение, просто используя или для исключения целевого 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>

Связанный контент