Apache e suporte para CA por diretório

2

Eu estava usando o Debian Wheezy com o Apache e configurei alguns caminhos no SSL para serem protegidos pelo certificado do cliente.

   <Location /admin-page>
     SSLCACertificateFile    /etc/apache2/ssl/leos.pem
     SSLVerifyClient require
     SSLVerifyDepth  0
     SSLRenegBufferSize 10486000
   </Location>

Desde que fiz o upgrade para Jessie, não consigo iniciar o Apache2, a menos que eu comente essa parte.

Mar 20 16:38:07 apache2[1649]: AH00526: Syntax error on line 51 of /etc/apache2/sites-enabled/default-ssl.conf:
Mar 20 16:38:07 apache2[1649]: Your SSL library does not have support for per-directory CA

Como posso voltar a trabalhar?

    
por Leos Literak 20.03.2016 / 16:44

1 resposta

3

Você precisa mover a linha "SSLCACertificateFile /etc/apache2/ssl/leos.pem" fora da sub-rotina Location (coloque-a junto com o arquivo SSLCertificateFile). Se você já tiver um SSLCACertificateFile - por exemplo, usado para certificados SSL de uma empresa externa - e quiser adicionar uma CA auto-assinada para autenticação do lado do cliente, basta adicionar seu certificado de CA a esse arquivo (um único arquivo .crt pode tem - vários certificados).

Você ainda pode forçar apenas a verificação dos diretórios que deseja proteger.embora, com uma sub-rotina Location, como:

<LocationMatch "^/(admin|internal)($|/)">
          SSLVerifyClient require
           SSLVerifyDepth 1
           SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
           and %{SSL_CLIENT_I_DN_O} in {"CompanyName} \
           and %{SSL_CLIENT_S_DN_OU} in {"OU1","OU2"} )
</LocationMatch>

Não vejo razão para que isso não funcione com a Localização, em vez da correspondência de local, mas não tentei isso. Eu uso a correspondência de localização porque a implementei no proxy.

Você também pode se livrar / alterar as linhas SSL_CLIENT_ * para corresponder ao seu certificado. Em um lugar onde trabalho, temos diferentes tipos de certificados para diferentes pessoas, com diferentes permissões - identificar a Unidade de Organização, juntamente com certificações apropriadas, permite diferentes permissões diferentes aos grupos - o que se traduz em acesso a diferentes locais.

Eu noto que o mesmo Contêiner de VM é usado por usuários finais sem um certificado - é claro que eles não podem acessar as partes com "SSLVerifyClient require".

    
por 20.03.2016 / 18:30