Um CSR (Certificate Signing Request) é um bloco de dados codificados que você envia a uma Autoridade Certificadora (CA) para solicitar um certificado SSL. Ele contem sua chave pública e informações do domínio. A CA usa isso para criar seu certificado.
O que ha dentro de um CSR
| Campo | Exemplo | Obrigatório? |
|---|---|---|
| Common Name (CN) | example.com | Sim |
| Chave Pública | Sua chave pública RSA ou ECDSA | Sim |
| Algoritmo da Chave | ECDSA P-256 ou RSA 2048 | Sim |
| Organização | Sua Empresa LTDA | Opcional para DV |
| Pais | BR | Opcional para DV |
| SANs | www.example.com, api.example.com | Para multi-domínio |
Para certificados DV (como Let’s Encrypt), apenas o(s) nome(s) de domínio e a chave pública importam. Os campos organizacionais sao ignorados.
Como a geração do CSR funciona
- Gerar um par de chaves — uma chave privada é uma chave pública
- Construir o CSR — codificar a chave pública + info do domínio em um formato padronizado (PKCS#10)
- Assinar o CSR — assina-lo com a chave privada (prova que você tem a chave privada correspondente)
- Enviar para a CA — a CA verifica sua propriedade do domínio, depois usa o CSR para criar seu certificado
A chave privada nunca sai do seu sistema. O CSR contem apenas a chave pública.
GetHTTPS trata o CSR automaticamente
Com ferramentas tradicionais, você geraria manualmente um CSR com OpenSSL:
# The manual way (not needed with GetHTTPS)
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout privkey.pem -out csr.pem -nodes \
-subj "/CN=example.com"
Com GetHTTPS, você nunca ve ou toca no CSR. A ferramenta:
- Gera o par de chaves no seu navegador (Web Crypto API)
- Constroi o CSR automaticamente a partir da entrada do seu domínio
- Envia para o Let’s Encrypt como parte do fluxo ACME
- Fornece o certificado assinado para download
O CSR é um passo interno — você apenas insere seu domínio e recebe um certificado.
Gerando um CSR manualmente (quando necessário)
Se você precisa de um CSR avulso (para uma CA comercial, ou uma plataforma que exige que você faça upload de um), veja como:
ECDSA P-256 (recomendado)
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout privkey.pem -out csr.pem -nodes \
-subj "/CN=example.com"
RSA 2048
openssl req -new -newkey rsa:2048 \
-keyout privkey.pem -out csr.pem -nodes \
-subj "/CN=example.com"
Com múltiplos domínios (SAN)
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout privkey.pem -out csr.pem -nodes \
-subj "/CN=example.com" \
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"
Verificar um CSR
openssl req -in csr.pem -noout -text
Isso mostra o(s) nome(s) de domínio, algoritmo da chave e tamanho da chave embutidos no CSR.
CSR no protocolo ACME
No protocolo ACME (usado pelo Let’s Encrypt), o CSR é enviado durante o passo de finalizacao — após a válidação do domínio passar. A CA usa a chave pública do CSR para construir seu certificado. O formato do CSR e PKCS#10, codificado como base64url na mensagem JSON do ACME.
Com GetHTTPS, todo esse processo acontece em JavaScript usando a Web Crypto API e a biblioteca pkijs. Você nunca ve os bytes brutos do CSR.
Perguntas frequentes
Preciso manter o arquivo CSR?
Não. O CSR é usado apenas durante a solicitacao do certificado. Após a CA emitir seu certificado, o CSR não serve mais proposito. Mantenha sua chave privada e certificado — você pode descartar o CSR.
Posso reutilizar um CSR para renovação?
Tecnicamente sim, mas e melhor gerar um novo par de chaves e CSR para cada renovação. Isso segue o principio de rotacao de chaves e limita a exposicao se uma chave for comprometida.
Qual a diferenca entre um CSR é um certificado?
Um CSR é uma solicitacao — contem sua chave pública e pede a CA para assina-la. Um certificado e o resultado — e a declaracao assinada da CA de que sua chave pública pertence ao seu domínio. O CSR e a entrada; o certificado e a saida.
Posso gerar um CSR para um domínio wildcard?
Sim. Use *.example.com como o Common Name:
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout privkey.pem -out csr.pem -nodes \
-subj "/CN=*.example.com"
Com GetHTTPS, você não precisa gerar um CSR manualmente — insira *.example.com como o domínio e o GetHTTPS trata o CSR automaticamente.
O que significa “key usage” em um CSR?
Extensões de key usage especificam para que o certificado pode ser usado — tipicamente “Digital Signature” e “Key Encipherment” para certificados TLS. GetHTTPS e a maioria dos clientes ACME configuram isso corretamente por padrão. Você só precisa se preocupar com key usage se estiver gerando CSRs manualmente para uma CA comercial com requisitos especificos.