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


