Cómo excluir alguna ruta/página de la certificación del cliente en Apache 2

Cómo excluir alguna ruta/página de la certificación del cliente en Apache 2

Estoy intentando configurar un servidor Apache con la certificación de cliente habilitada. Para que los clientes pudieran acceder al contenido con un certificado de cliente válido.

Digamos que tengo el servidor ejecutándose como

https://myserver/myservice/

También necesito proporcionar una interfaz a mis clientes para obtener sus certificados de cliente proporcionando cierta información de autenticación para

https://myserver/myservice/register

Una vez verificada la información de carga, devuelve un certificado de cliente.

Si entiendo correctamente, esta ruta debería excluirse del mecanismo de certificación del cliente, simplemente porque se utiliza para generar certificados. Entonces la pregunta es, ¿cómo puedo especificar la configuración httpd para lograr esto?

Mi configuración actual es así:

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>

Con esta configuración, puedo obtener el certificado de cliente de

http://myserver/myservice/register

luego acceda al servicio usándolo. Sin embargo, no logré configurarlo en https para poder cerrar el puerto 80.

Respuesta1

Ahora tengo la solución, simplemente usando o excluyendo la ruta de la URL de destino.

<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>

información relacionada