O Wildcard SSL comporta-se de forma inconsistente nos navegadores / SOs / computadores

5

Eu tenho um certificado SSL curinga instalado em um domínio hospedado com o Media Temples Dedicated Virtual 4.0. Aqui está uma página de exemplo simples que estou tentando veicular em SSL: link

Agora, outras pessoas que eu perguntei (cerca de 4 ou 5) dizem que o site funciona bem em seus computadores, em vários navegadores, sem aviso de segurança. No entanto, estou obtendo resultados inconsistentes no meu computador.

Aqui estão os meus resultados. Estou executando o último OSX, com o Windows 7 executando o Parallels e as versões mais recentes de todos os navegadores:

OSX / Firefox: O cadeado mostra, sem problemas. Windows 7 / Firefox: Aviso - 'Esta ligação não é fidedigna'

OSX / Chrome: Aviso: 'A segurança deste site não é de confiança' Windows 7 / Chrome: Cadeado ecológico - "Identidade verificada pelo RappidSSL CA".

OSX / Opera: Aviso - 'A cadeia de certificados deste servidor está incompleta e o (s) signatário (s) não está (ão) cadastrado (s). Aceitar?' Windows 7 / Opera: O cadeado mostra, 'conectado com segurança, registro de segurança limpo'.

OSX / Safari: Aviso - "O Safari não pode verificar a identidade do site"

Windows 7 / IE: O cadeado mostra: 'Esta conexão com o servidor está criptografada'.

Minha pergunta é: alguém pode fornecer informações sobre o que pode estar causando o problema aqui ou como corrigi-lo? Poderia ser apenas um problema no meu computador e, em caso afirmativo, o que? O que é particularmente estranho é que obtenho resultados opostos em OSX vs. Windows 7, para os mesmos navegadores.

Mesmo que você possa apenas comentar qual navegador / sistema operacional está usando e se funcionou ou não para você, seria ótimo! Obrigado.

por joshua.paling 04.01.2013 / 07:53

4 respostas

3

OK, então Christopher Perrin me colocou no caminho certo com SSLCertificateChainFile - obrigado. Aqui estão os detalhes, caso eles ajudem outra pessoa. Estou usando o Plesk 11 e, obviamente, os caminhos a que me refiro serão diferentes para os outros.

Quando eu crio o subdomínio ssltest.bblhosted.com, o Plesk cria um arquivo em /var/www/vhosts/ssltest.bblhosted.com/conf/13558069200.18494000_httpd.include (ou similar). Este arquivo efetivamente serve o propósito de um arquivo vhost.conf (ou vhost_ssl.conf), exceto que ele é gerado automaticamente pelo plesk, e será automaticamente substituído toda vez que você alterar as configurações através do Plesk.

O arquivo contém a linha:

SSLCertificateFile /usr/local/psa/var/certificates/cert-Eq8jue

, que mostra onde encontrar meu certificado SSL. O que não contém é uma linha indicando onde encontrar o certificado de CA. Por isso, deve conter a linha:

SSLCertificateChainFile /usr/local/psa/var/certificates/cert-t8ReAO

(Obviamente, o caminho deve apontar para o seu próprio certificado de CA). Tanto quanto eu posso dizer, o fato de que esta linha não está incluída é um bug no Plesk. Você poderia adicionar a linha a esse arquivo, diretamente abaixo da linha SSLCertificateFile , e depois reiniciar o Apache, e ele funcionaria - CONTUDO, se você fizer isso, o arquivo será substituído na próxima vez que você alterar as configurações desse domínio no Plesk e você perderá suas alterações. No topo do arquivo, o Plesk dá esse aviso:

#ATTENTION!
#
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
#
#IF YOU REQUIRE TO APPLY CUSTOM MODIFICATIONS, PERFORM THEM IN THE  FOLLOWING FILES:

#/var/www/vhosts/ssltest.bblhosted.com/conf/vhost.conf
#/var/www/vhosts/ssltest.bblhosted.com/conf/vhost_ssl.conf

Então, criei /var/www/vhosts/ssltest.bblhosted.com/conf/vhost_ssl.conf e adicionei a única linha a ele:

SSLCertificateChainFile /usr/local/psa/var/certificates/cert-t8ReAO

Você não precisa adicionar mais nada além dessa única linha. Pelo que eu sei, todas as outras configurações ainda serão obtidas do arquivo httpd.include padrão gerado pelo Plesk.

Agora, você precisa dizer ao Plesk para procurar o arquivo vhost_ssl.conf, porque ele não será por padrão - mesmo que você o tenha criado! Faça isso efetuando login via SSH e executando este comando:

/usr/local/psa/admin/bin/httpdmng --reconfigure-all

Isso dirá ao Plesk para procurar por vhost.conf (e vhost_ssl.conf) para todos os domínios. Você também pode fazer isso apenas por um único domínio, se necessário.

Por último, reinicie o Apache e o SSL funciona!

Note que se você adicionar outro subdomínio, você precisará passar por todo o processo novamente, incluindo a execução do comando terminal para fazer o Plesk procurar por vhost.conf e vhost_ssl.conf para o seu novo domínio ou subdomínio.

    
por 05.01.2013 / 05:22
8

É possível que sua cadeia de certificados não esteja completa. Pode ser necessário adicionar o RapidSSL CA Bundle . ao seu certificado.

No Apache, você tem a opção SSLCertificateChainFile . Defina isso para o caminho em que você salvou o RapidSSL CA Bundle .

Outra opção é adicionar os certificados de cadeia ao seu próprio, anexando-os ao seu certificado como este

cat mycert.pem RapidSSL_CA_bundle.pem >> mychainedcert.pem

Isso deve resolver o problema.

Explicação

Você obviamente comprou seu certificado no RapidSSL. O RapidSSL, no entanto, não é uma das CAs nas quais seus navegadores confiam. Isso não é problema porque o seu navegador confia no GeoTrust e no GeoTrust confia no RapidSSL. Você só precisa mostrar ao navegador o certificado que comprova isso. É por isso que você precisa incluir o arquivo em cadeia.

    
por 04.01.2013 / 08:07
2

Eu configurei recentemente exatamente esse cenário. Eu teria que verificar mais, MAS:

Ao verificar os detalhes do seu certificado, você recebe:

Nome DNS: * .bblhosted.com Nome DNS: bblhosted.com

Você recebeu o bblhosted.com como AltDNSName.

Compreendi o comportamento que você está tendo com um certificado para o domínio raiz e um certificado curinga para todos os outros subdomínios.

Dessa forma, a máscara padrão do certificado corresponderá ao URL fornecido de todas as maneiras possíveis que um navegador deve verificar para ele.

TL; DR: obtenha dois novos certificados, um com apenas "bblhosted.com" como altDnsName / CN e outro com "* .bblhosted.com".

EDIT: Você poderia verificar se esse é o problema, executando alguns certificados livres pelos caras no link . Eu não me incomodei com um certificado comercial e eu tenho esses como meus certificados ssl principais. O único incômodo é que a maioria dos sistemas operacionais não envia o certificado raiz, portanto você terá que instalá-lo sozinho.

    
por 04.01.2013 / 08:02
0

Um certificado pode conter uma extensão especial Acesso a Informações da Autoridade ( RFC-3280 ) com URL para o certificado do emissor. A maioria dos navegadores pode usar a extensão AIA para baixar o certificado intermediário ausente para completar a cadeia de certificados. Mas alguns clientes (navegadores móveis, OpenSSL) não suportam esta extensão, então eles relatam tal certificado como não confiável.

Você pode resolver a questão cadeia de certificados incompleta manualmente concatenando todos os certificados do certificado ao certificado raiz confiável (exclusivo, nesta ordem), para evitar tais problemas. Tenha em atenção que o certificado raiz fidedigno não deve estar presente, uma vez que já está incluído no arquivo de certificados raiz do sistema.

Você deve conseguir obter certificados intermediários do emissor e reuni-los sozinho. Btw, eu escrevi um script para automatizar o procedimento, ele faz um loop sobre a extensão AIA para produzir saída de certificados corretamente encadeados. link

    
por 19.01.2015 / 06:10