Por que os navegadores sabem qual certificado usar quando há vários certificados?

Por que os navegadores sabem qual certificado usar quando há vários certificados?

Sou muito novo no mundo de servidores e redes, espero que as perguntas sejam claras e não sejam tão triviais. Recentemente me deparei com o seguinte cenário:

  1. Havia um certificado Root A, que expirará alguns meses depois. Houve outro novo certificado raiz B, que pretendia substituir A. Tanto A quanto B são autoassinados. A CA de A é confiável para navegadores/sistemas operacionais novos e antigos, enquanto a CA de B é confiável apenas para navegadores/sistemas operacionais modernos

  2. Havia um certificado cruzado A-> B (B assinado por A) que está sendo usado atualmente em nossos servidores. No entanto, como A irá expirar em breve, aplicamos outro certificado cruzado C-> B (B assinado por C, cuja CA de C é confiável para navegadores/sistemas operacionais antigos e novos) como substituto.

  3. Agora, no ambiente UAT, atualizamos o certificado C-> B, e para o lado do cliente tento usar alguns navegadores legados para testes, verifiquei que apenas CA de A e CA de C são confiáveis, enquanto CA de B não é. Para ambiente PROD, permanecemos inalterados, ou seja, usando o certificado A-> B

  4. Acessei o site do UAT com o navegador mencionado e verifiquei que o certificado utilizado é A->B, pela primeira vez. Surpreendentemente, para acesso posterior aos sites UAT e PROD, o certificado utilizado é C->B (verificado no lado do cliente).

Minha pergunta é: esse comportamento é normal? Por que o lado do cliente “sabe” usar C->B desde o primeiro acesso aos sites UAT? Também uso openssl s_clientpara verificar se o servidor PROD ainda está usando A->B. Como os navegadores sabem qual certificado usar e "atualizar" o certificado adequadamente?

Editado em 13/12/2022

  1. Nosso principal objetivo é oferecer suporte a navegadores/sistemas operacionais muito antigos e navegadores/sistemas operacionais modernos. ou seja, todos os navegadores podem acessar nosso site com sucesso, mesmo depois que o certificado A expirar.
  2. Acho que minha principal pergunta, ou dúvida, é se o seguinte for verdade:
  • Navegadores antigos, acessando pela primeira vez o site UAT, mostram que o servidor está usando o certificado A-> B devido a algum mecanismo de cache
  • Após o primeiro acesso ao site UAT, o servidor realmente "envia" o novo certificado C-> B para o lado do cliente que está configurado no servidor. Agora, os navegadores, ou mesmo o nível do sistema operacional, reconheceram que o certificado mais recente é C-> B, não mais A-> B.
  • Embora C->B seja reconhecido, o certificado A->B ainda é salvo no navegador/SO. Mas o navegador de alguma forma sabe como verificar com o certificado mais recente C-> B. Significa que nosso propósito pode ser alcançado.

Responder1

Fazesseresponder sua pergunta?

No link, limpar o cache do navegador/estado SSL pode ser o que você precisa fazer:

Os navegadores da Web armazenam em cache certificados SSL para acelerar a experiência de navegação. Normalmente, isso não é um problema. No entanto, quando você está desenvolvendo páginas para o seu site ou instalando um novo certificado, o estado SSL do navegador pode atrapalhar. Por exemplo, você pode não ver o ícone de cadeado na barra de endereço do navegador após instalar um novo certificado SSL.

informação relacionada