Configure a verificação do certificado do cliente em um servidor Apache via SSLVerifyCilent em um servidor Centos 6.5+

1

Meta:

Meu objetivo é configurar um servidor web Apache em uma caixa Centos, com validação de certificado SSL e cliente similar ao seguinte host virtual Apache ( ):

<VirtualHost *:443>
  SSLEngine on
  SSLCertificateFile /path/to/myserver.pem
  SSLCertificateKeyFile /path/to/myserver.key
  SSLCACertificateFile /path/to/ca.pem
  SSLCACertificatePath /path/to
  SSLVerifyClient require

  <Location />
    SSLRequireSSL
    SSLOptions +FakeBasicAuth
    AuthName "FakeBasicAuth"
    AuthType Basic
    AuthUserFile /path/to/httpd.passwd
    require valid-user
  </Location>

  ScriptAliasMatch ^(.*) /path/to/hgwebdir.cgi$1
</VirtualHost>

Solução atual:

A partir de agora, tenho uma solução Apache funcional baseada em um certificado de CA autoassinado que é usado para criar uma CA intermediária que é usada novamente para criar um certificado de servidor da Web ( link ).

A CA, a CA intermediária e os certificados do servidor da Web são usados em um arquivo host virtual do Apache para configurar a comunicação SSL. Quando não uso o SSLVerifyClient, a solução funciona conforme o esperado, tanto no próprio servidor da Web quanto na caixa do Windows em que o certificado de CA foi adicionado. Nenhuma tela irritante e tudo é bom.

Problema:

Mas assim que eu adiciono o SSLVerifyClient eu recebo o 'ssl_error_handshake_failure_alert' no Firefox na caixa do windows e 'sslv3 alert handshake failure' no servidor centos usando o comando 'openssl s_client -connect [ip]:[port]' .

Essa falha é certa, porque estou perdendo o certificado de cliente, mas como esses certificados de cliente devem ser criados e usados? Não consigo ver onde esse certificado de cliente se encaixa.

Eu tentei jogar com o Pageant de massa, mas parece que isso é apenas para o protocolo ssh e não seguro http. Eu estou procurando uma solução http segura, onde o certificado de cliente é instalado na caixa do windows, permitindo que os desenvolvedores acessem o servidor web.

    
por Dev Dev 07.10.2014 / 23:14

1 resposta

0

Você precisa importar o certificado do cliente como arquivo p12 / pfx (incluindo a chave privada) para o seu firefox.

O certificado do cliente precisa ser um certificado de cliente que seja confiável pelo servidor da web. ou seja, o certificado do cliente deve ser inscrito / assinado por sua AC.

    
por 08.10.2014 / 09:45