Todos os produtos
Search
Central de documentação

Certificate Management Service:O que são chaves públicas e privadas?

Última atualização: Sep 15, 2026

Chaves públicas e privadas formam um par de chaves matematicamente vinculado, gerado por um algoritmo de criptografia assimétrica. Em conjunto com um certificado SSL/TLS, elas permitem a comunicação segura entre cliente e servidor: a chave pública criptografa dados e verifica assinaturas, enquanto a chave privada descriptografa dados e cria assinaturas.

Este tópico explica o funcionamento dessas chaves no protocolo SSL/TLS e demonstra como gerar uma chave privada e uma Certificate Signing Request (CSR) usando OpenSSL ou keytool.

Conceitos principais

Chave pública e chave privada

Uma chave pública e uma chave privada são sempre geradas como um par inseparável:

  • Chave pública — compartilhada publicamente. Criptografa os dados enviados ao proprietário da chave e verifica as assinaturas criadas pela chave privada.

  • Chave privada — mantida em sigilo absoluto. Descriptografa os dados criptografados pela chave pública e gera assinaturas digitais que comprovam a identidade do remetente.

Manter a segurança da chave privada é fundamental. Se ela for comprometida, todas as comunicações criptografadas ficarão vulneráveis e o certificado associado se tornará inutilizável.

Importante

Para obter detalhes sobre como o Certificate Management Service protege as chaves privadas, consulte How does Certificate Management Service protect private keys?.

Como funciona

O SSL/TLS estabelece um canal seguro em cinco etapas. As etapas 1 a 3 usam criptografia assimétrica (chave pública/privada); as etapas 4 e 5 passam a usar criptografia simétrica, mais rápida, por meio de uma chave de sessão.

  1. Apresentação do certificado — o servidor envia seu certificado SSL ao cliente. Esse certificado contém a chave pública do servidor, informações de identidade (nome de domínio), a assinatura digital de uma autoridade certificadora (CA) e o período de validade do certificado.

  2. Verificação do certificado (lado do cliente) — o cliente valida a cadeia de certificados na seguinte ordem: certificado do servidor → certificado intermediário → certificado raiz. A cadeia é considerada confiável se remontar a um certificado raiz presente no repositório de confiança local do cliente. Além disso, o cliente verifica o período de validade e confirma se o nome de domínio corresponde ao endpoint acessado.

    Nota

    Esse processo depende do repositório de certificados raiz pré-instalado no sistema operacional ou navegador do cliente.

  3. Comprovação da chave privada — o servidor comprova que possui a chave privada correspondente ao certificado. O mecanismo varia conforme o método de troca de chaves utilizado:

    Troca de chaves

    Como o servidor comprova a posse da chave privada

    RSA

    Descriptografa o pre-master secret enviado pelo cliente

    DH/ECDH

    Assina a mensagem ServerKeyExchange

    TLS 1.3

    Assina a mensagem CertificateVerify

  4. Negociação da chave de sessão — ambas as partes derivam uma chave de sessão idêntica a partir das informações trocadas.

  5. Comunicação criptografada — todos os dados subsequentes são criptografados com a chave de sessão mediante criptografia simétrica, unindo eficiência e segurança.

Gerar uma chave privada

O Certificate Management Service exige que as chaves privadas usem o algoritmo RSA com comprimento mínimo de 2048 bits.

Nota

Se você adquirir um certificado pelo Certificate Management Service com a opção CSR Generation definida como Automatic, o próprio service gerará o par de chaves em seu nome. Nesse caso, pule a geração da chave e a criação da CSR.

Gerar uma nova chave privada

  1. Instale o OpenSSL. Baixe o pacote de instalação no site do OpenSSL. Use uma versão estável e oficialmente suportada — 1.1.1 ou 3.x. Para verificar a versão atual instalada:

    openssl version
  2. Gere o arquivo da chave privada. Os comandos abaixo criam uma chave privada RSA formatada em Privacy-Enhanced Mail (PEM), chamada myprivate.pem. Execute um dos comandos conforme seus requisitos de segurança:

    # 2048-bit key (minimum requirement)
    openssl genrsa -out myprivate.pem 2048
    
    # 4096-bit key (stronger security)
    openssl genrsa -out myprivate.pem 4096
    
    # 4096-bit key with AES-256 password protection (recommended for high-security environments)
    openssl genrsa -aes256 -out myprivate.pem 4096

Exportar uma chave privada de um Java Keystore (JKS)

Use este método quando tiver um par de chaves em um arquivo .jks (criado com keytool) e precisar exportá-lo no formato PEM — por exemplo, para configurar Nginx, Apache ou uma CDN.

Usar a ferramenta de conversão de formato do Certificate Management Service

O Certificate Management Service oferece uma ferramenta online gratuita que converte um keystore JKS em arquivos de chave e certificado no formato PEM em uma única etapa. Consulte Convert the format of a certificate.

Usar a CLI do OpenSSL

  1. Converta o JKS para o formato PKCS12. A CLI keytool não exporta chaves privadas diretamente para PEM. Primeiro, converta o JKS para o formato PKCS12 (.p12), que é mais portátil. Substitua mydomain pelo alias real:

    keytool -importkeystore \
      -srckeystore mydomain.jks \
      -destkeystore mydomain.p12 \
      -deststoretype PKCS12 \
      -srcalias mydomain \
      -destalias mydomain

    O sistema solicitará a senha do JKS de origem e uma nova senha para o arquivo .p12.

  2. Extraia a chave privada no formato PEM. Use o OpenSSL para extrair a chave privada do arquivo .p12. Será solicitada a senha do arquivo .p12 definida na etapa anterior:

    • -nodes — não criptografa a chave privada de saída

    • -nocerts — gera apenas a chave privada, sem o certificado

    # Standard command
    openssl pkcs12 -in mydomain.p12 -nodes -nocerts -out myprivate.pem
    
    # If you get an "unsupported algorithm" error in OpenSSL 3.x, add -legacy
    # Note: -legacy enables deprecated encryption algorithms
    openssl pkcs12 -in mydomain.p12 -nodes -nocerts -out myprivate.pem -legacy

    Flags:

O arquivo myprivate.pem resultante é o necessário para a configuração do certificado.

Formatos de arquivo de chave privada

Um arquivo de chave privada PEM apresenta-se em um dos dois formatos abaixo:

PKCS#1

(Específico para RSA, definido pelo padrão de criptografia RSA)

-----BEGIN RSA PRIVATE KEY-----
(Base64-encoded key content)
-----END RSA PRIVATE KEY-----

PKCS#8

(Independente de algoritmo, compatível com RSA, ECC e outros algoritmos de chave privada)

-----BEGIN PRIVATE KEY-----
(Base64-encoded key content)
-----END PRIVATE KEY-----
Importante

Armazene o arquivo da chave privada com segurança. Em caso de perda ou comprometimento, o certificado associado se tornará inutilizável e quaisquer dados criptografados com a chave pública correspondente ficarão vulneráveis.

Crie uma Certificate Signing Request (CSR)

A CSR agrupa sua chave pública e informações de identidade para envio a uma CA. Para enviar uma CSR manualmente no Certificate Management Service:

  1. Gere o arquivo CSR usando sua chave privada.

    # -key myprivate.pem  Specifies the private key file generated earlier
    # -out mydomain.csr   Specifies the output CSR filename
    openssl req -new -key myprivate.pem -out mydomain.csr

    O comando solicita: país, estado ou província, cidade, organização e Common Name. O Common Name deve corresponder exatamente ao nome de domínio do certificado — por exemplo, www.aliyun.com.

  2. Envie a CSR no Certificate Management Service. Ao comprar, criar ou solicitar um certificado, defina CSR Generation como Manual e cole o conteúdo de mydomain.csr. Para mais detalhes, consulte:

Próximos passos