O que e HTTPS e por que importa
HTTPS e o protocolo que garante que sua conexão com um site e segura e autenticada.
HTTPS e a versão segura do HTTP, o protocolo usado para transferir dados entre o browser e o servidor. A diferença esta na camada de segurança adicionada pelo TLS, que criptografa todo o tráfego, impede que terceiros leiam ou modifiquem os dados em transito e autentica a identidade do servidor. Sem HTTPS, qualquer pessoa na mesma rede pode ler senhas, tokens e informações pessoais trafegando em texto puro. Browsers modernos marcam sites sem HTTPS como não seguros. Mecanismos de busca penalizam sites HTTP no ranqueamento. E usuários ja esperam o cadeado verde como sinal básico de confianca em qualquer site que solicita dados.
SSL vs TLS, historia e diferenças
SSL foi o protocolo original. TLS e o sucessor seguro que usamos hoje.
SSL, ou Secure Sockets Layer, foi criado pela Netscape nos anos 1990 para proteger conexões HTTP. As versões SSL 2.0 e 3.0 foram descontinuadas por falhas graves de segurança. O TLS, Transport Layer Security, surgiu como substituto e passou pelas versões 1.0, 1.1, 1.2 e a atual 1.3. O nome SSL persiste no mercado por razões históricas, mas o protocolo real em uso desde meados dos anos 2000 e o TLS. Quando alguem fala "certificado SSL", esta se referindo a um certificado TLS. A versão TLS 1.3, lanada em 2018, eliminou algoritmos considerados fracos, reduziu o número de roundtrips no handshake e e hoje o padrão recomendado para qualquer novo sistema.
Como funciona o TLS handshake
Antes de transmitir dados, cliente e servidor negociam uma chave de sessão efemera.
O handshake TLS e o processo pelo qual cliente e servidor estabelecem um canal seguro antes de transmitir qualquer dado da aplicação. No TLS 1.3, o processo começa com o cliente enviando uma mensagem ClientHello com as versões e algoritmos suportados. O servidor responde com o certificado e ja inicia a troca de chaves via Diffie-Hellman. Com apenas um roundtrip, ambos possuem uma chave de sessão compartilhada sem que ela trafegue pela rede. Essa chave e usada para criptografia simetrica durante a sessão. No TLS 1.2, eram necessários dois roundtrips. O TLS 1.3 também permite 0-RTT para reconexões, reduzindo ainda mais a latência para usuários recorrentes.
Certificados digitais e CAs
Um certificado e o documento que comprova que o servidor e quem diz ser.
O certificado digital e um arquivo no padrão X.509 que vincula uma chave pública a um dominio. Ele e assinado digitalmente por uma Certificate Authority, ou CA, uma entidade em quem browsers e sistemas operacionais confiam por padrão. Quando você acessa um site HTTPS, o browser verifica se o certificado do servidor foi emitido por uma CA reconhecida, se o dominio bate com o certificado e se o certificado não esta expirado nem revogado. Se qualquer dessas verificações falhar, o browser exibe um aviso de segurança. As principais CAs comerciais incluem DigiCert, Comodo e Sectigo. A Let's Encrypt democratizou o acesso a certificados validos emitindo-os gratuitamente de forma automatizada.
Let's Encrypt e certificados gratuitos
Let's Encrypt automatizou a emissão de certificados validos sem custo algum.
A Let's Encrypt e uma CA sem fins lucrativos mantida pela Internet Security Research Group com suporte da Linux Foundation. Ela emite certificados DV, Domain Validation, gratuitamente e os renova automaticamente via o protocolo ACME. Ferramentas como Certbot, Caddy e a maioria dos paineis de hospedagem integram com a Let's Encrypt nativamente. O processo de emissão verifica que você controla o dominio por meio de um desafio HTTP ou DNS, sem necessidade de documentação. Certificados tem validade de 90 dias para incentivar renovação frequente e reduzir o impacto de comprometimento. Hoje, mais de metade dos sites HTTPS na internet usam certificados emitidos pela Let's Encrypt.
Perfect Forward Secrecy
PFS garante que sessões passadas não possam ser descriptografadas mesmo se a chave privada vazar.
Perfect Forward Secrecy, ou PFS, e uma propriedade criptografica que garante que cada sessão TLS usa uma chave efemera independente. Isso significa que comprometer a chave privada do servidor não permite descriptografar sessões passadas que foram capturadas por um adversário. A PFS e implementada usando troca de chaves Diffie-Hellman efemera, onde as chaves de sessão são geradas a cada conexão e descartadas ao final. No TLS 1.3, a PFS e obrigatória e todos os cipher suites a implementam. No TLS 1.2, e opcional e depende dos cipher suites configurados. Servidores bem configurados devem priorizar cipher suites com ECDHE, Elliptic Curve Diffie-Hellman Ephemeral, para garantir PFS em todas as conexões.
HSTS e HSTS Preloading
HSTS instrui o browser a sempre usar HTTPS, eliminando a possibilidade de downgrade.
HTTP Strict Transport Security, ou HSTS, e um header de segurança que o servidor envia ao browser instruindo-o a usar exclusivamente HTTPS para aquele dominio pelo período especificado. Uma vez recebido o header, o browser rejeita conexões HTTP sem nem consultar o servidor. Isso previne ataques de downgrade, onde um intermediário tenta forcar o uso de HTTP para interceptar tráfego. O header tem a forma Strict-Transport-Security: max-age=31536000; includeSubDomains. O HSTS Preloading vai além: o dominio e incluído em uma lista que vem embutida nos browsers. Antes de fazer qualquer requisição, o browser ja sabe que o dominio exige HTTPS. Isso elimina completamente a janela de vulnerabilidade do primeiro acesso.
Certificados DV, OV e EV
O nível de validação do certificado determina o quanto a CA verificou sobre sua identidade.
Existem tres níveis de validação para certificados TLS. DV, Domain Validation, verifica apenas que o solicitante controla o dominio. E o mais rápido de obter, gratuito via Let's Encrypt, e suficiente para a maioria dos sites. OV, Organization Validation, verifica além do dominio também a existência legal da organização. Exige documentação e leva alguns dias. EV, Extended Validation, e o nível mais rigoroso com verificação de identidade da empresa, endereco e personagem juridica. Historicamente exibia o nome da empresa na barra de endereco em verde, mas browsers modernos removeram essa indicação visual por questões de usabilidade. Para a grande maioria dos casos, DV via Let's Encrypt e a escolha certa.
Quando HTTPS e obrigatório
Hoje, HTTPS não e opcional, e o padrão mínimo para qualquer site público.
HTTPS e obrigatório em qualquer site que colete dados de usuários, incluindo formulários de contato, login, cadastro e pagamento. Mas na prática, mesmo sites puramente informativos devem usar HTTPS porque browsers marcam HTTP como não seguro, o que gera desconfianca e abandono. APIs REST que trafegam tokens de autenticação precisam obrigatoriamente de HTTPS para proteger esses tokens de interceptação. Service Workers e Progressive Web Apps exigem HTTPS para funcionar. Geolocation API, camera e microfone do browser só funcionam em contextos seguros. HTTP/2 e HTTP/3 na prática só funcionam sobre TLS. Com certificados gratuitos e renovação automática via Let's Encrypt, não há justificativa técnica ou financeira para manter qualquer serviço sem HTTPS.
Resumo
TLS e a camada que torna a web segura, entender como funciona e essencial para todo desenvolvedor.
HTTPS combina o protocolo HTTP com o TLS para criar conexões criptografadas, autenticadas e integras entre browser e servidor. O handshake TLS estabelece uma chave de sessão efemera via Diffie-Hellman sem que ela trafegue pela rede. Certificados digitais vinculam chaves públicas a dominios e são verificados por CAs confiadas pelos browsers. Let's Encrypt tornou certificados gratuitos e acessíveis para todos. Perfect Forward Secrecy garante que sessões passadas permanecem seguras mesmo se a chave privada vazar no futuro. HSTS e HSTS Preloading eliminam a possibilidade de acesso acidental via HTTP. Para qualquer desenvolvedor web, configurar corretamente TLS, HSTS e renovação automática de certificados e uma habilidade básica não negociável.
Tutoriais em Video
SSL, TLS, HTTPS Explained, ByteByteGo
How SSL works tutorial - with HTTPS example
SSL, TLS, HTTP, HTTPS Explained
SSL Certificate Explained
How dões HTTPS work? What's a CA? What's a self-signed Certificate?
Transport Layer Security, TLS 1.2 and 1.3 (Explained by Example)
Conceitos-chave
TLS vs SSL
SSL foi descontinuado, TLS e o protocolo atual; HTTPS usa TLS 1.2 ou 1.3, o nome SSL persiste historicamente
Handshake TLS
negociação de versão, troca de certificados e chaves efemeras via Diffie-Hellman, estabelece canal seguro antes de transmitir dados
Certificado digital
documento assinado por uma CA que vincula chave pública a um dominio, X.509, validado pelo browser
CA - Certificate Authority
entidade que verifica identidade e assina certificados, Let's Encrypt emite gratis via ACME protocol
Perfect Forward Secrecy
chaves efemeras por sessão, comprometer a chave privada do servidor não revela sessões passadas
HSTS - HTTP Strict Transport Security
header que instrui o browser a sempre usar HTTPS, previne downgrade attacks
SSL e HTTPS no Instagram
@bytebytego
Reels, SSL e HTTPS
@bytebytego
SSL e HTTPS no Facebook
SSL e HTTPS no X (Twitter)
O que devs dizem
Finalmente entendi a diferença entre SSL e TLS. O artigo explica bem o handshake e por que o TLS 1.3 e mais rápido. Configurei HSTS no meu servidor depois de ler isso.
A parte sobre Perfect Forward Secrecy foi reveladora. Não sabia que capturar tráfego hoje poderia ser descriptografado no futuro se a chave privada vazasse. PFS resolve exatamente isso.
Conteúdo completo e bem estruturado. Faltou um pouco mais sobre configuração prática do Nginx com TLS 1.3, mas os links externos compensam. Recomendo para quem quer entender o básico com solidez.