Como resolver o problema de criptografia obsoleta no Chrome
Estava com preguiça de renovar o certificado SSL do meu blog. Quando finalmente resolvi o problema, um amigo me mandou uma imagem que complicou as coisas…
Eu estava com uma preguiça enorme de renovar o certificado SSL do meu blog. Quando finalmente tomei uma atitude e resolvi o problema, um amigo me mandou a imagem abaixo:
Como vocês podem ver, a mensagem diz que o site está utilizando uma criptografia obsoleta e que além disso, “inclui outros recursos não seguros”. Confesso que nunca tinha prestado atenção nisso, e provavelmente esta mensagem já estava lá antes de eu renovar meu certificado.
A soluçãoO segundo problema foi bem simples: depois de inspecionar o site para ver se ele está carregando algum JavaScript↳JavaScript116 conteúdosJavaScript em 2020: O que esperarDev (Back & Front) · jan 2020Campos públicos e privados em classes JavaScript – O que vem por aí no ESNextDev (Back & Front) · abr 201929 anos de JavaScript!Dev (Back & Front) · jan 2025Ver tudo em Dev (Back & Front) → ou outro asset de um CDN ou coisa do tipo, descobri que, uma imagem que eu estava usando, vinha diretamente da Wikipedia. Foi só salvar essa imagem no servidor e utilizá-la para a página deixar de “incluir outros recursos não seguros”.
Já a mensagem da criptografia obsoleta levou um pouco mais de tempo, afinal, o certificado era “novinho” e eu havia optado por uma chave com 4096 bits. Além disso, me recordava de ter configurado o servidor web para não utilizar versões obsoletas do SSL (v1 e v2) e do TLS (v1.1).
É importante ressaltar aqui que tal mensagem não tem relação alguma com o preço do certificado: não importa se ele é barato ou caro. A própria mensagem deu a dica fundamental: o problema era o HMAC-SHA1. Por mais que eu ignorasse o que era o HMAC, sabia que o SHA-1 já encontrava-se obsoleto há muito tempo.
Então, a solução foi forçar o servidor a não utilizar esse algoritmo.
NGINX
Se você utiliza o Nginx, altere a opção ssl_ciphers nas configurações do seu site:
# /etc/nginx/sites-enable/default.conf
server {
listen 443 ssl;
root /var/www/exemplo.com/;
server_name exemplo.com;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA';
ssl_protocols SSLv3 TLSv1.2;
ssl_prefer_server_ciphers on;
...
...
...
}
Reinicie o servidor com:
# service nginx reload
Apache HTTP Server
Eu não testei, mas pelo que pesquisei, é preciso fazer algo semelhante na opção SSLCipherSuite do campo VirtualHost do arquivo /etc/apache2/sites-enable.
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /path/to/signed_certificate
SSLCertificateChainFile /path/to/intermediate_certificate
SSLCertificateKeyFile /path/to/private/key
SSLCACertificateFile /path/to/all_ca_certs
# Configuração intermediária, ajuste conforme suas necessidades
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA
SSLHonorCipherOrder on
SSLCompression off
# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
# On Apache 2.4+, SSLStaplingCache must be set *outside* of the VirtualHost
SSLStaplingCache shmcb:/var/run/ocsp(128000)
# Enable this if your want HSTS (recommended)
# Header add Strict-Transport-Security "max-age=15768000"
...
</VirtualHost>
Reinicie o servidor para que as mudanças tenham efeito:
service apache2 restart
Não sei por que raios os fornecedores acima não trazem essas configurações como padrão. Contudo, depois de efetuar as mudanças acima, o navegador mostra um cadeado completamente verde e sem ressalvas!









