Acabei de renovar um certificado público X.509 emitido pela Multicert em um site/vhost em um RedHat 6.2 VM
Apache 2.2 em execução. Vamos chamá-lo de https://www.multicert.com . Minha máquina cliente que visita o site com o Chrome está em execução Debian 9
.
O que me surpreendeu é que o certificado está dando um aprovado/verde no Firefox Quantum 60.2.0esr (64 bits) e no Safari também, porém o Chrome 69.0.3497.92 agora está reclamando que o site não é seguro (enquanto antes com o certificado antigo era OK).
Eu verifiquei a configuração do Apache e tudo parece bem. Também tripliquei a verificação da cadeia de certificados X.509 e a raiz, e tudo parece estar ok.
Também temos outro certificado público emitido ao mesmo tempo para um site configurado de forma semelhante, no entanto, ele é emitido Comodo
e não Multicert
, e neste site o Chrome funciona bem com o certificado, vamos chamá-lo de https://www.digicert.com
Se eu reverter para o certificado antigo, o Chrome funcionará novamente, mas não posso deixá-lo assim, pois provavelmente será revogado amanhã e expirará em alguns dias.
A única mudança que notamos no site com o certificado Comodo, está no Chrome, ao clicar no certificado lock->Certificate-details
, temos novo campo em Extensions com o identificadorOID.1.3.6.1.4.1.1.11129.2.4.2
O que esta acontecendo aqui?
Dado o OID
.1.3.6.1.4.1.1.11129.2.4.2
, descobri um artigo relevante do Let's Encrypt Engenharia profunda: codificação de SCTs em certificadosComecei a fazer algumas investigações sobre o assunto e acabei descobrindo que o Google tornou obrigatória a Transparência de Certificados no Chrome para todos os tipos de certificados X.509 a partir de 1º de maio de 2018.
Da aplicação de transparência de certificados no Google Chrome
Do Chrome requer CT após abril de 2018
Então , da Transparência de Certificados, uma introdução
Então, sobre meus dois sites, um (exemplo: www.digicert.com ) está tendo as extensões SCT X.509 diretamente no certificado e não precisa de modificações de configuração no lado do servidor.
No outro site (exemplo: multicert.com), o operador da CA opta por usar o grampeamento X.509 e, como tal, o servidor web Apache precisa de alterações de configuração.
Também localizei um artigo na Digicert sobre grampeamento OCSP para Apache
Então, para obter o site com trabalho de grampeamento OSCP, preciso:
tem uma versão do Apache maior que 2.3.3
a VM tendo comunicação com o servidor CA OCSP
adicionando ao vhost:
Fora da diretiva <virtualhost...>
Dentro da diretiva <virtualhost...>
E reinicie o Apache.
Após essas alterações no site com o certificado X.509 emitido pela Multicert, o Chrome está dizendo que os certificados são válidos em ambos os sites.
Consulte também o Chrome Linux não está mostrando uma extensão X.509, SCT
Mais detalhes técnicos
Também me perguntaram como foi imposto o limite de tempo de 1º de maio de 2018 e o que estaria acontecendo com os certificados antigos. Na falta de detalhes mais palpáveis online, baixei a fonte do Chromium de https://chromium.googlesource.com/chromium/src/ com o comando:
Para aqueles interessantes na funcionalidade de Transparência de Certificados, o diretório mais interessante parece ser
components/certificate_transparency/
e o arquivo doc mais interessantenet/docs/certificate-transparency.md
Excertos interessantes de
net/docs/certificate-transparency.md
Nota: Curiosamente, o RFC 6292 é definido como experimental
Quanto à data de início de 1º de maio de 2018, existem instâncias codificadas específicas no código do Chromium (que é comum ao Chrome), definindo a data limite que estará presente no código do Chrome/Chromium na transição anos. Então isso explica o comportamento diferente na emissão de certificados antes de 1º de maio de 2018.
De services/network/network_context.cc:
De components/certificate_transparency/chrome_ct_policy_enforcer.cc:
Adendos: baseado em algo que descobri depois de fazer esta investigação, e que está detalhado em: Chrome Linux não está mostrando uma extensão X.509, SCT
Extensão SCT para https://www.digicert.com
Definição OCSP para https://www.multicert.com