Estou me conectando a um servidor web específico via firewall, mas quando faço isso o firewall alerta que o certificado raiz expirou, quando ignoro o firewall todos os navegadores não veem nenhum problema com os certificados e quando verifico a cadeia todos os certificados estão ok.
Dei uma olhada mais profunda e descobri que o navegador está, na verdade, substituindo o certificado expirado enviado pelo servidor por um não expirado do armazenamento de certificados do Windows. (O servidor envia uma cadeia de quatro certificados: raiz, intermediário 1, intermediário 2 e certificado do servidor. O intermediário 1 expirou. Ele é substituído pelo navegador/SO e se torna o certificado raiz do navegador. É uma cadeia de certificados GlobalSign. )
Aparentemente eles têm o mesmo nome amigável e possivelmente outras propriedades semelhantes (é claro que a chave pública é a mesma). Como o IE/Chrome está fazendo o mesmo, parece muito com algum recurso do Windows usado pelos navegadores.
Por que isso acontece? Como o certificado pode ser substituído e há algum perigo potencial que não conheço?
Aqui está uma captura de imagem comparando o visualizador do navegador e a captura de pacotes
Responder1
RESPOSTA: O Windows ignora os certificados CA fornecidos pelo servidor web. Ele verificará apenas o certificado do servidor da web em relação ao certificado CA apropriado que está armazenado no armazenamento de certificados CA do sistema operacional, aqueles que são confiáveis pelo sistema operacional. O Windows também tem suas maneiras de recuperar a cadeia de certificados CA que emitiu o certificado do servidor da web se a cadeia ainda não estiver armazenada no armazenamento de certificados CA do sistema operacional. Mais alguns detalhes sobre isso podem ser encontrados aqui:
Poderia simplesmente visitar um site enviar uma CA raiz como confiável para o meu PC?
Alguns firewalls verificarão os certificados CA enviados pelo servidor web e bloquearão o acesso se um dos certificados expirar. Os firewalls em geral têm um comportamento diferente em relação aos certificados em comparação com sistemas operacionais normais como o Windows.
Também aprendemos que os certificados CA podem ser reemitidos com diferentes números de série e datas de validade. O certificado terá o mesmo “Nome Amigável” e pares de chaves.
Neste caso específico o servidor web está enviando uma versão antiga de um Certificado CA pertencente à cadeia, o firewall está detectando que o certificado expirou e bloqueando o acesso ao site. Quando o firewall é ignorado, o site pode ser acessado, isso acontece porque o Windows possui a nova versão do certificado CA e verifica o certificado do servidor web com ele.