bg-tutorials

Como Gerar um CSR em Servidores JBoss

Este tutorial mostra como gerar um CSR (Certificate Signing Request) no JBoss EAP e WildFly usando o utilitário Java keytool. O fluxo é composto por dois comandos: primeiro, keytool -genkeypair cria um keystore e uma chave privada sob um alias escolhido, e depois keytool -certreq exporta o CSR correspondente com os Subject Alternative Names que a CA irá emitir. O mesmo alias é reutilizado mais tarde quando você importa o certificado assinado, de modo que a chave, o CSR e o certificado final ficam todos no mesmo lugar.

Nota sobre versões: a versão moderna do JBoss é o Red Hat JBoss Enterprise Application Platform (EAP) 8, lançado em fevereiro de 2024 e baseado no projeto de origem WildFly (WildFly 41, lançado em julho de 2026, é a versão comunitária atual). Ambos configuram o HTTPS através do subsistema elytron e do https-listener do Undertow; a configuração mais antiga de conectores Tomcat ou Jetty mostrada em guias legados já não se aplica. A etapa do CSR em si, porém, é idêntica em todas as versões recentes, pois trata-se de uma simples operação Java com o keytool.

O que você vai precisar

  • Uma instalação Java (JDK ou JRE) para que o comando keytool esteja disponível. O JBoss EAP 8.0 é executado em Java 11 (obsoleto) ou 17, o EAP 8.1 adiciona o Java 21, e o WildFly 41 é executado em Java 17, 21 ou 25 (o Java 11 já não é suportado na origem). Confirme com keytool -help.
  • Acesso via shell ou terminal no servidor JBoss que irá 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 outros nomes de host adicionais que deseja incluir no campo SAN.
  • Os dados legais da sua organização (país, estado, localidade, nome da organização) para o Distinguished Name do CSR.

Passo 1: Criar o keystore e a chave privada

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

Abra um terminal no servidor JBoss e crie um novo keystore no formato PKCS12. O PKCS12 é o padrão moderno e portátil (RFC 7292) e é o formato de keystore padrão no Java desde o JDK 9; o formato proprietário mais antigo JKS está obsoleto. Execute:

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

O que significam os parâmetros:

  • -alias jboss: o nome da entrada dentro do keystore. Escolha um rótulo que você reconheça (frequentemente jboss, server, ou o seu domínio). Anote-o. É necessário reutilizar exatamente este alias quando gerar o CSR e novamente quando importar o certificado assinado. Usar um alias diferente na importação é o erro mais comum ao usar o keytool.
  • -keyalg RSA -keysize 2048: uma chave RSA de 2048 bits é o mínimo público atual. Para novos keystores que pretende manter por vários anos, 3072 bits é uma atualização razoável. A maioria das CAs públicas também aceita ECDSA (-keyalg EC -groupname secp256r1) se preferir uma chave menor e mais rápida. A opção -groupname requer JDK 13 ou posterior; no Java 11, use -keyalg EC -keysize 256, que seleciona a mesma curva secp256r1. O keytool rejeita ambas as opções no mesmo comando.
  • -storetype PKCS12: força o uso do keystore moderno PKCS12. A extensão correspondente é .p12 (ou .pfx).
  • -keystore yourdomain.p12: o ficheiro de keystore a criar. Substitua o nome por algo que você reconheça e mantenha este ficheiro em segurança; 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 substitui-o mais tarde, portanto o valor exato não afeta a vida útil em produção.

O keytool pede então uma senha do keystore. Escolha uma senha forte e guarde-a no seu gestor de segredos: você precisará dela em todos os comandos keytool posteriores e para a credential-reference do Elytron que irá configurar no JBoss. Com keystores PKCS12, a senha da chave é igual à senha do keystore, portanto há apenas uma senha para memorizar.

Passo 2: Introduzir os dados da sua organização (DN)

O keytool pede agora o Distinguished Name (DN): os campos de identidade que vão para o CSR. Responda a cada pergunta com o valor exato e legal para a sua organização. A pontuação e a precisão são importantes, porque uma CA irá rejeitar discrepâncias em relação aos registos empresariais públicos.

  • Primeiro e último nome (CN): esta é a forma como o keytool a designa, mas trata-se do campo Common Name. Introduza o FQDN exato que está a proteger, por exemplo www.seudominio.com, ou um wildcard como *.seudominio.com. Não introduza o nome de uma pessoa.
  • Unidade organizacional (OU): este campo já não é emitido pelas CAs públicas e é melhor deixá-lo em branco. Note que pressionar Enter não o deixa vazio: o keytool substitui-o pelo seu próprio valor padrão, pelo que o DN acaba por conter OU=Unknown, que depois é transportado para o CSR. Para omitir realmente o campo, use a forma não interativa -dname abaixo e deixe o OU fora da string.
  • Organização (O): o nome legal completo da sua empresa, por exemplo Your Company LLC. Os certificados OV e EV exigem este campo; para certificados DV, muitas CAs aceitam-no como informativo, portanto preenchê-lo é mais seguro do que deixá-lo em branco.
  • 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 ISO de duas letras do país, por exemplo US, GB, DE.

Depois da última pergunta, o keytool mostra um resumo como CN=www.seudominio.com, OU=Unknown, O=Your Company LLC, L=San Jose, ST=California, C=US. Digite yes para confirmar. O ficheiro do 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 evite as perguntas:

keytool -genkeypair 
  -alias jboss 
  -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

Os navegadores e clientes TLS modernos validam os certificados face à extensão Subject Alternative Name (SAN), e não apenas face ao Common Name. Solicite os SANs diretamente no CSR para que a CA os inclua no certificado emitido. Use o mesmo alias e keystore do Passo 1:

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

O que significam os parâmetros:

  • -alias jboss: 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 ficheiro 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) como o subdomínio www. Adicione mais entradas separadas por vírgulas, por exemplo dns:api.yourdomain.com.

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

Fundamental: mantenha o seu alias e keystore

O erro mais comum ao usar o keytool no JBoss é importar o certificado assinado sob um novo alias. Ao fazer isso, o certificado é guardado como uma entrada confiável independente sem qualquer chave privada associada, e o key-manager do Elytron não conseguirá iniciar uma sessão TLS. Importe sempre a resposta assinada de volta para o mesmo alias que contém a chave privada (o alias do Passo 1).

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

  • O alias (neste guia, jboss).
  • O caminho do ficheiro do keystore (por exemplo, yourdomain.p12; no JBoss, este geralmente encontra-se em $JBOSS_HOME/standalone/configuration/).
  • 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 pela entrada cujo tipo é PrivateKeyEntry:

keytool -list -v -keystore yourdomain.p12

Passo 4: Verificar o CSR antes de o enviar

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

keytool -printcertreq -file yourdomain.csr

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

openssl req -noout -text -in yourdomain.csr

Confirme três coisas no resultado: 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 CSR Decoder para a mesma verificação num navegador.

Passo 5: Enviar o CSR à sua Autoridade Certificadora

Abra o ficheiro yourdomain.csr em qualquer editor de texto. O ficheiro é texto simples, começando com -----BEGIN NEW CERTIFICATE REQUEST----- e terminando com -----END NEW CERTIFICATE REQUEST-----. A palavra NEW é o que o keytool escreve, e é esperado: o conteúdo é um pedido PKCS#10 padrão que todas as CAs aceitam. Copie o bloco completo, incluindo essas linhas de cabeçalho e rodapé, e cole-o no campo de CSR durante o processo de compra com a sua CA. No Windows, use Ctrl + A e depois Ctrl + C para copiar o texto completo; no macOS, use Cmd + A e depois Cmd + C.

Faça uma cópia de segurança do ficheiro do keystore antes de fazer qualquer outra coisa. Se perder o ficheiro yourdomain.p12, perde também a chave privada, o que significa que o certificado assinado devolvido pela CA ficará inutilizável e terá de começar de novo com um CSR novo.

Depois de a CA validar o seu pedido e emitir o certificado, continue com como instalar o seu certificado SSL no JBoss. Irá importar o certificado assinado de volta para o mesmo alias no mesmo keystore, e depois referenciar esse keystore a partir de um key-store, key-manager e server-ssl-context do Elytron, configurados no https-listener do Undertow.

Posso reutilizar um CSR para uma renovação?

Pode, mas a melhor prática de segurança é gerar um novo keystore, uma nova chave privada e um novo CSR para cada certificado. Uma nova chave em cada renovação limita o impacto caso a chave antiga seja alguma vez comprometida, e o processo é o mesmo: execute keytool -genkeypair e keytool -certreq num novo ficheiro de keystore. A vida útil dos certificados TLS públicos está a diminuir sob as regras do CA/Browser Forum (200 dias a partir de 15 de março de 2026, reduzindo para 100 dias em 2027 e 47 dias em 2029), por isso planeie ciclos de CSR mais frequentes, ou automatize a emissão através do ACME onde a sua CA o suporte.

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.