
O Windows XP continua usando o certificado Snakeoil que acompanha o Ubuntu, apesar de nunca ter sido usado em nenhum host virtual.
O certificado está localizado em
/etc/ssl/certs/ssl-cert-snakeoil.pem
Não tenho certeza de onde está a chave. O único que vejo que parece plausível é em
/etc/ssl/private/ssl-cert-snakeoil.key
Acho que o certificado CA está em
/etc/ssl/certs/ca-certificates.crt
mas não tenho certeza.
Até agora eu tentei vários comandos do openssl, como
openssl ca -keyfile /etc/ssl/private/ssl-cert-snakeoil.key \
-revoke /etc/ssl/certs/ssl-cert-snakeoil.pem \
-cert /etc/ssl/certs/ca-certificates.crt
A saída disso foi
Using configuration from /usr/lib/ssl/openssl.cnf
CA certificate and CA private key do not match
14805:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:406:
Estou sem ideias. Qualquer ajuda é muito apreciada.
EDITAR
Aqui está o que aconteceu:
Comprei um certificado da GeoTrust, instalei-o, ativei o novo virtualhost usando esse certificado e reiniciei o apache2. Em nenhum momento da vida deste servidor qualquer outro certificado foi usado para proteger o tráfego da web, muito menos o certificado Snakeoil. Windows Vista e superior, bem como OSX e todas as distribuições Linux que testei usam o certificado correto. O Windows XP usa o certificado Snakeoil (no IE. Nenhum outro navegador nessa VM). Aqui estão algumas capturas de tela:
Responder1
Dadas as informações extras que você forneceu, provavelmente será mais fácil iniciar outra resposta.
Não parece que o certificado fictício "snakeoil" esteja sendo apresentado ao cliente Windows. O certificado "snakeoil" é gerado com o assunto CN=Ubuntu
, enquanto o certificado apresentado à caixa do Windows tem o assunto CN=Production
. Então, estamos olhando para um terceiro certificado aqui.
Posso ver o mesmo certificado se me conectar ao seu servidor com OpenSSL s_client
:
$ openssl s_client -connect portal.avendimedia.com:443
...
Certificate chain
0 s:/CN=Production
i:/CN=Production
...
O que acredito que está acontecendo é que você configurou seu servidor web para usar oIndicação do nome do servidorextensão. Esta extensão foi projetada para permitir que um servidor apresente certificados diferentes dependendo do nome de host ao qual o cliente deseja se conectar.
Isso funciona bem na maioria dos navegadores modernos, mas não funciona no Internet Explorer nas versões do Windows anteriores ao Vista. Neste ponto, parece altamente improvável que a Microsoft atualize as bibliotecas SSL no Windows XP para suportar a extensão SNI.
Se você precisa que seu site funcione com o Internet Explorer no XP, veja se você pode remover as referências a esse outro host SSL rodando no mesmo endereço IP da sua configuração do Apache.
Responder2
O certificado "snakeoil" é gerado automaticamente quando o ssl-cert
pacote é instalado.
É um certificado autoassinado, portanto revogá-lo não faz muito sentido. Você pode facilmente gerar um novo:
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
Você provavelmente terá que reiniciar qualquer serviço que esteja usando esse certificado para que a alteração entre em vigor.
Quando você diz que o Windows XP continua usando o certificado, o que você quer dizer exatamente? Se você tivesse dito ao seu navegador naquele computador para confiar no certificado Snakeoil específico gerado pelo seu sistema Ubuntu, seria simples revogar essa confiança na interface de gerenciamento de certificados do navegador.