bg-tutorials

Como Gerar um CSR no Tomcat

Este tutorial mostra como gerar um CSR (Certificate Signing Request) para o Apache Tomcat usando o utilitário Java keytool. O fluxo consiste em dois comandos: primeiro keytool -genkeypair cria um keystore e uma chave privada sob um alias escolhido, depois keytool -certreq exporta o CSR correspondente. O mesmo alias é reutilizado mais tarde ao importar o certificado assinado, para que a chave, o CSR e o eventual certificado fiquem todos no mesmo local.

O que você vai precisar

  • Uma instalação Java (JDK ou JRE) para que o comando keytool esteja disponível. Confirme com keytool -help.
  • Acesso ao shell ou terminal no servidor que vai hospedar a chave privada. A chave privada deve permanecer neste servidor.
  • O nome de domínio totalmente qualificado (FQDN) exato que você deseja proteger, por exemplo www.seudominio.com, além de quaisquer domínios adicionais que deseja cobrir (para o campo SAN).
  • Os dados legais da sua organização (país, estado, localidade, nome da organização) para o Nome Distinto (DN) do CSR.

Passo 1: Criar o keystore e a chave privada

Se você já gerou o seu CSR, avance para enviar o CSR e depois para instalar o certificado SSL no Tomcat.

Abra um terminal no servidor e crie um novo keystore no formato PKCS12. O PKCS12 é o padrão moderno e portátil, e tem sido o formato de keystore padrão no Java desde o JDK 9; o formato JKS mais antigo está obsoleto. Execute:

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -validity 825

O que significam as opções:

  • -alias tomcat: o nome da entrada dentro do keystore. Escolha um rótulo que você reconhecerá facilmente (geralmente tomcat ou o seu domínio). Anote-o. Você deve reutilizar exatamente este alias ao gerar o CSR e novamente ao importar o certificado assinado.
  • -keyalg RSA -keysize 2048: uma chave RSA de 2048 bits é o mínimo público atual. Para novos keystores, 3072 bits é um upgrade razoável para chaves com vida útil mais longa. A maioria das CAs públicas também aceita ECDSA (-keyalg EC -groupname secp256r1) se preferir uma chave menor e mais rápida.
  • -storetype PKCS12: força o uso do keystore moderno PKCS12. A extensão correspondente é .p12 (ou .pfx).
  • -keystore yourdomain.p12: o arquivo de keystore a ser criado. Substitua o nome por algo que você vai lembrar, e mantenha este arquivo seguro; ele contém a sua chave privada.
  • -validity 825: por quanto tempo o certificado autoassinado provisório dentro do keystore é válido. O certificado assinado pela CA o substitui posteriormente, portanto o valor exato não afeta a vida útil em produção.

Em seguida, o keytool solicita uma senha do keystore. Escolha uma senha forte e guarde-a no seu gerenciador de segredos: você vai precisar dela em todos os comandos keytool subsequentes e no server.xml do Tomcat. Com keystores PKCS12, a senha da chave é igual à senha do keystore, portanto há apenas uma senha para lembrar.

Passo 2: Insira os detalhes da sua organização (DN)

O keytool agora solicita o Nome Distinto (DN): os campos de identidade que entram no CSR. Responda a cada solicitação com o valor exato e legal da sua organização. Pontuação e precisão importam: uma CA rejeitará divergências em relação aos registros públicos da empresa.

  • Primeiro e último nome (CN): esta é a terminologia do keytool, mas trata-se do campo Common Name. Insira o FQDN exato que está protegendo, por exemplo www.seudominio.com, ou um wildcard como *.seudominio.com. Não insira o nome de uma pessoa.
  • Unidade organizacional (OU): este campo já não é emitido por CAs públicas, sendo melhor deixá-lo em branco. Pressione Enter para pular.
  • Organização (O): o nome legal completo da sua empresa, por exemplo Your Company LLC.
  • Cidade ou localidade (L): o nome completo da cidade, por exemplo San Jose. Não abrevie.
  • Estado ou província (ST): o nome completo do estado ou província, por exemplo California. Não use um código de duas letras.
  • Código do país (C): o código de país ISO de duas letras, por exemplo US, GB, DE.

Após a última pergunta, o keytool exibe um resumo semelhante a CN=www.seudominio.com, OU=, O=Your Company LLC, L=San Jose, ST=California, C=US. Digite yes para confirmar. O arquivo de keystore agora existe com uma entrada: o seu alias, contendo a chave privada e um certificado autoassinado provisório.

Se preferir um comando não interativo, passe o DN diretamente e pule as perguntas:

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US" 
  -validity 825

Passo 3: Gerar o CSR com SAN

Navegadores e clientes modernos validam certificados com base na extensão Subject Alternative Name (SAN), não apenas no Common Name. Solicite os SANs diretamente no CSR para que a CA os inclua no certificado emitido. Use o mesmo alias e keystore utilizados no Passo 1:

keytool -certreq 
  -alias tomcat 
  -keystore yourdomain.p12 
  -file yourdomain.csr 
  -ext san=dns:yourdomain.com,dns:www.yourdomain.com

O que significam as opções:

  • -alias tomcat: deve corresponder ao alias do Passo 1. Este é o alias cuja chave privada assina o pedido.
  • -keystore yourdomain.p12: deve corresponder ao keystore do Passo 1.
  • -file yourdomain.csr: o nome do arquivo de saída para o CSR.
  • -ext san=dns:…: a extensão Subject Alternative Name. Liste todos os nomes de host que o certificado deve cobrir, incluindo tanto o domínio principal (yourdomain.com) quanto o subdomínio www. Adicione mais entradas separadas por vírgula, por exemplo dns:api.yourdomain.com.

O keytool solicita a senha do keystore e grava o CSR em yourdomain.csr no diretório atual.

Fundamental: mantenha o seu alias e keystore

O erro mais comum com o keytool no Tomcat é importar o certificado assinado sob um novo alias. Fazer isso armazena o certificado como uma entrada confiável independente, sem chave privada associada, e o TLS não funcionará. Sempre importe a resposta assinada de volta para o mesmo alias que contém a chave privada (o alias do Passo 1).

Anote estes três valores agora, antes de fechar o terminal:

  • O alias (neste guia, tomcat).
  • O caminho do arquivo de keystore (por exemplo yourdomain.p12).
  • A senha do keystore.

Se não tiver certeza de qual alias contém a sua chave, liste o conteúdo do keystore e procure a entrada cujo tipo é PrivateKeyEntry:

keytool -list -v -keystore yourdomain.p12

Passo 4: Verificar o CSR antes de enviá-lo

Detecte erros de digitação no DN ou SANs em falta antes que a CA os valide. Imprima o CSR com o keytool:

keytool -printcertreq -file yourdomain.csr

Ou, se o OpenSSL estiver instalado, pode usá-lo em alternativa:

openssl req -noout -text -in yourdomain.csr

Confirme três coisas na saída: o Subject mostra o seu DN exato, o Subject Alternative Name lista todos os nomes de host necessários, e o tamanho da Public-Key corresponde ao que solicitou (RSA de 2048 bits, ou o que tiver escolhido). Também pode colar o CSR no nosso Decodificador de CSR para fazer a mesma verificação no navegador.

Passo 5: Enviar o CSR à sua Autoridade Certificadora

Abra o yourdomain.csr em qualquer editor de texto. O arquivo é texto simples, começando com —–BEGIN CERTIFICATE REQUEST—– e terminando com —–END CERTIFICATE REQUEST—–. Copie o bloco inteiro, incluindo essas linhas de cabeçalho e rodapé, e cole-o no campo do CSR durante o processo de compra junto da sua CA. No Windows, use Ctrl + A e depois Ctrl + C para capturar todo o texto; no macOS, use Cmd + A e depois Cmd + C.

Depois de a CA validar o seu pedido e emitir o certificado, continue com como instalar o certificado SSL no Tomcat. Você vai importar o certificado assinado de volta para o mesmo alias no mesmo keystore, e depois apontar o conector HTTPS do Tomcat para esse keystore.

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

Uma imagem detalhada de um dragão em voo
Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.