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:
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
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.
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
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_client
para 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
- 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.
- 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.