Conceitos e terminologia são dois dos obstáculos que os desenvolvedores enfrentam ao migrar para o HTTPS. Este guia fornece uma breve visão geral de ambos.
Resumo
- Usou chaves públicas/privadas para assinar e descriptografar mensagens entre o navegador e o servidor.
- Uma autoridade de certificação (CA) é uma organização que confirma o mapeamento entre as chaves públicas e os nomes DNS públicos (como "www.foobar.com").
- Uma solicitação de assinatura de certificado (CSR) é um formato de dados que agrupa uma chave pública com alguns metadados sobre a entidade proprietária da chave
Quais são os pares de chaves pública e privada?
Um par de chaves públicas/privadas é um par de números muito grandes que são usados como chaves de criptografia e descriptografia e que compartilham uma relação matemática especial. Um sistema comum para pares de chaves é o sistema criptográfico RSA (em inglês). A chave pública é usada para criptografar mensagens. Elas só podem ser descriptografadas de maneira viável com a chave privada correspondente. Seu servidor da Web divulga a chave pública para o mundo, e os clientes (como navegadores da Web) usam isso para inicializar um canal seguro para seu servidor.
O que é uma autoridade de certificação?
Uma autoridade de certificação (CA, na sigla em inglês) é uma organização que confirma o mapeamento entre chaves públicas e nomes DNS públicos (como "www.foobar.com"). Por exemplo, como um cliente sabe se uma chave pública específica é a chave pública true para www.foobar.com? A princípio, não há como saber. Uma CA confirma que determinada chave é a verdadeira para um site específico usando a própria chave privada para assinar criptograficamente a chave pública do site. Essa assinatura é computacionalmente inviável para falsificar. Os navegadores (e outros clientes) mantêm armazenamentos âncora de confiança contendo as chaves públicas pertencentes às ACs conhecidas e usam essas chaves públicas para verificar criptograficamente as assinaturas da AC.
Um certificado X.509 é um formato de dados que agrupa uma chave pública com alguns metadados sobre a entidade proprietária da chave. No caso da Web, o proprietário da chave é o operador do site, e os metadados importantes são o nome DNS do servidor da Web. Quando um cliente se conecta a um servidor da Web HTTPS, esse servidor apresenta o certificado para o cliente verificar. O cliente verifica se o certificado não expirou, se o nome DNS corresponde ao nome do servidor a que o cliente está tentando se conectar e se uma CA âncora de confiança conhecida assinou o certificado. Na maioria dos casos, as CAs não assinam diretamente certificados do servidor da Web. Normalmente, há uma cadeia de certificados que vincula uma âncora de confiança a um ou mais signatários intermediários e, por fim, ao próprio certificado do servidor da Web (a entidade final).
O que é uma solicitação de assinatura de certificado?
Uma solicitação de assinatura de certificado (CSR, na sigla em inglês) é um formato de dados que, assim como um certificado, agrupa uma chave pública com alguns metadados sobre a entidade proprietária da chave. No entanto, os clientes não interpretam CSRs, como as ACs. Quando você quer que uma AC confirme a chave pública do seu servidor da Web, envia uma CSR para a AC. A CA valida as informações na CSR e as usa para gerar um certificado. Em seguida, a CA envia o certificado final para você instalar esse certificado (ou, mais provavelmente, uma cadeia de certificados) e sua chave privada no servidor da Web.