Pedido de certificado de cliente parcial para o Apache HTTP

2

Eu tenho um servidor HTTP Apache com SSL ativado e solicitando um certificado de cliente.

Como configuro o Apache para solicitar apenas o certificado quando um usuário acessa determinada parte do site?

Exemplo:
/ myapp / não deve solicitar o certificado
/ myapp2 / deve solicitar o certificado

Nota: Estas aplicações estão sendo servidas usando o mod-jk

    
por Joshua 12.05.2010 / 18:05

3 respostas

1

O truque aqui é que você precisa fazer isso no tomcat. Desde que isso é o que está realmente processando o pedido.

Como a autenticação do cliente é feita por conector, você precisará criar dois novos conectores. Um para o SSL base w / auth, e um para o conector mod_jk (portas escolhidas escolhidas arbitrariamente como cur + 1).

 <!-- Client Auth Connector on port 8444 -->
    <!--
    <Connector port="8444"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" debug="0" scheme="https" secure="true"
               clientAuth="true" sslProtocol="TLS" />
    -->

    <!-- Client auth ajp connector on port 8010 -->
    <Connector port="8010"
               enableLookups="false" redirectPort="8444" debug="0"
               protocol="AJP/1.3" />

Em seguida, basta configurar um trabalhador mod_jk secundário para se conectar à SSL de autenticação do cliente no apache para / myapp2

    
por 22.05.2010 / 02:29
1

Algo assim deve fazer a mágica:

<Directory /myapp2>
  SSLVerifyClient require
</Directory>

<Directory /myapp>
  SSLVerifyClient none
</Directory>

Mais informações sobre a diretiva SSLVerifyClient aqui .

    
por 18.05.2010 / 20:33
0

Isso pode funcionar: link

Como posso autenticar meus clientes para uma determinada URL com base em certificados, mas ainda permitir que clientes arbitrários acessem as partes restantes do servidor?

Para isso, usamos novamente o recurso de reconfiguração por diretório do mod_ssl: httpd.conf

SSLVerifyClient none
SSLCACertificateFile conf/ssl.crt/ca.crt

<Location /secure/area>
SSLVerifyClient require
SSLVerifyDepth 1
</Location>
    
por 18.05.2010 / 20:41