Já pisei nesse poço antes. Esqueci como praticar, mas ainda lembro desse princípio. Explique de forma aproximada:
O pacote de instalação do navegador armazena alguns dos certificados raiz (chaves públicas) em que ele confia.
Para segurança, os emissores de certificados geralmente armazenam as chaves privadas correspondentes a esses certificados raiz em um cofre absolutamente desconectado. Essas chaves privadas raiz são usadas no cofre para emitir alguns certificados "intermediários", e as chaves privadas desses certificados intermediários têm autoridade para emitir o certificado de próximo nível. Essas chaves privadas intermediárias são instaladas em servidores online para ganhar dinheiro emitindo certificados de sites. Uma vez que esses servidores sejam hackeados, o publisher pode emitir uma ordem de revogação usando a chave privada do certificado raiz fisicamente isolada no vault para eliminar a confiança desses certificados intermediários sem precisar desconfiar completamente do certificado raiz do publisher. Assine um novo certificado intermediário de emissão, e você será um bom homem que pode ganhar dinheiro.
Aqui vem a pergunta.
O navegador reconhece apenas o certificado raiz. Para a certificação do certificado intermediário, você (o site) precisa emitir seu próprio certificado.
Um site HTTPS devidamente configurado deve incluir toda a cadeia de certificados no certificado. Por exemplo, use o comando openssl s_client -connect www.wosign.com:443 para visualizar a configuração do próprio site do Wosign. O restante do conteúdo pode ser ignorado, basta olhar o parágrafo da cadeia de certificados: --- Cadeia de certificados 0 s:/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Guangdong/1.3.6.6.1.4.1.311.60.2.1.1=Shenzhen/empresaCategoria=Privado Organization/serialNumber=440301103308619/C=CN/ST=\xE5\xB9\xBF\xE4\xB8\x9C\xE7\x9C\x81/L=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82/postalCode=518067/street=\xE6\xB7\xB1\ xE5\x9C\xB3\xE5\xB8\x82\xE5\x8D\x97\xE5\xB1\xB1\xB1\xE5\x8C\xBA\xE5\x8D\x97\xE6\xB5\xB7\xE5\xA4\xA7\xE9\x81\x931057\xE5\x8F\xB7\xE7\xA7\x91\xE6\x8A\x80\xE5\xA4\xA7\xE5\ x8E\xA6\xE4\xBA\x8C\xE6\x9C\x9FA\xE6\xA0\x8B502#/O=WoSign\xE6\xB2\x83\xE9\x80\x9A\xE7\x94\xB5\xE5\xAD\x90\xE8\xAE\xA4\xE8\xAF\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\ xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/CN=www.wosign.com i:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA 1 s:/C=CN/O=WoSign CA Limited/CN=WoSign Classe 4 EV CA i:/C=CN/O=WoSign CA Limited/CN=Autoridade de Certificação da WoSign 2 s:/C=CN/O=WoSign CA Limited/CN=Autoridade de Certificação da WoSign i:/C=IL/O=StartCom Ltd./OU=Assinatura Segura de Certificados Digitais/CN=Autoridade de Certificação StartCom ---
0, 1 e 2 são os números de série de cada nível de certificado na cadeia de certificados. 0 é o certificado usado pelo site a ser verificado. Seu CN deve corresponder ao nome de domínio do site. Após cada número de série, a linha que começa com s refere-se ao certificado, e a linha que começa com i refere-se a quem emitiu o certificado.
Pode-se ver que o CN de 0 contém um nome de domínio chinês suspeito e um domínio em inglês www.wosign.com. É emitido pela WoSign CA Limited/CN=WoSign Classe 4 EV Server CA.
Um certificado de 1 é o emissor de 0. O próprio 1 é emitido por outro certificado, a Autoridade de Certificação da WoSign. Vamos olhar para o próximo nível, 2. Diz que a Autoridade de Certificação da WoSign é emitida pela StartCom (haha, na verdade é um subcontratado!). )
Depois de analisar em um nível assim, o navegador diz: ah, eu sei qual é o emissor do 2, e isso é mencionado no pacote de instalação, StartCom. Assinatura e validação corretas, então confie 2. Depois, você também deve confiar no 1 emitido pelo 2 e no 0 emitido pelo 1. Então, este site pode ser confiável.
--
No entanto, se o site estiver configurado para conter apenas a si mesmo no arquivo CRT e não uma cadeia de certificados completa o suficiente para ser verificada pelos dados embutidos do navegador, ele pode ser rejeitado pelo navegador. Como o quê openssl s_client -conectar touko.moe:443 --- Cadeia de certificados 0 s:/CN=touko.moe i:/C=CN/O=WoSign CA Limited/CN=WoSign CA Certificado SSL Gratuito G2 --- Só há 0 em um grupo. Descrição O touko.moe na linha s é emitido pelo WoSign CA Free SSL Certificate G2 na linha i. Sumiu.
Essa é a coisa mais surpreendente sobre essa armadilha: nem sempre é verdade se o navegador falha em verificar neste momento. Existem 2 situações: R. Nunca vi isso desde que o navegador foi instalado. Então a validação falha. B. Se o navegador já viu e verificou i antes, então a verificação será bem-sucedida.
Normalmente, o administrador vai ao site https do emissor do certificado para comprar o certificado, e o navegador o verifica, e então armazena em cache todos os certificados intermediários que foram verificados com sucesso, economizando tempo no futuro. Quando o administrador (por engano) configurou seu site e foi navegar pelo teste, ele não encontrou nenhum problema. Porque o navegador dele já reconhece esse certificado intermediário.
No entanto, muitos usuários podem não ter visitado outros sites devidamente configurados emitidos por esse certificado intermediário. Portanto, a validação falha porque não consegue encontrar um emissor confiável.
É comparável ao controle de emissões dos escapamentos dos veículos diesel Volkswagen. Estava tudo bem quando chequei. Assim que saem, colocam veneno.
EDIT: Como consertar ...... Provavelmente é adicionar a configuração SSLCertificateChainFile ao configurar o servidor e usar o arquivo bundle fornecido pelo site do emissor do certificado (o arquivo contém vários certificados intermediários para estabelecer a conexão entre seu certificado e um certificado de alta confiança).
|