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.