Criar os Certificados do Cliente

Para um cliente acessar serviços via X-Road/X-Valid, é necessário possuir certificados digitais para autenticação e assinatura das requisições. Eles podem ser emitidos por uma Autoridade Certificadora (AC) confiável ou serem autoassinados. Seja qual for o caso, deve ser inseridos como certificados internos que o Security Server utilizará para autenticar o cliente e permitir a invocação de serviços.

Objetivo

Gerar os certificados necessários para autenticação e assinatura do cliente utilizados no ecossistema de interoperabilidade.


Tipos de Certificados

  • Certificado de autenticação.
  • Certificado de assinatura.
  • Certificado TLS (se aplicável).

Passos Gerais

  1. Gerar par de chaves (keypair).
  2. Criar CSR (Certificate Signing Request).
  3. Submeter à AC / Autoridade competente.
  4. Instalar e validar os certificados emitidos.

Gerando Certificados Cliente Autoassinados com keytool

Para gerar certificados autoassinados é necessário:

  • Java JDK instalado
  • keytool disponível no terminal
  • Variável de ambiente PATH configurada (se necessário)

A instalação do JDK e da ferramenta keytool varia conforme o sistema operacional. Consulte a documentação oficial do Java para mais detalhes.


Gerar o par de chaves

Substitua novo_certificado pelo nome desejado:

keytool -genkeypair -alias novo_certificado -keyalg RSA -keysize 2048 -validity 1825 -keystore novo_certificado.jks

Durante a execução, será solicitado:

  • Uma senha (mínimo 6 caracteres)
  • Informações de identificação.

Exemplo:

CN=Joao Marcelo, OU=Casa Civil, O=Iris, L=Fortaleza, ST=CE, C=BR

Arquivo criado:

novo_certificado.jks — contém o par de chaves (pública + privada)

Exportar o certificado público

keytool -exportcert -alias novo_certificado -keystore novo_certificado.jks -file novo_certificado_certificate.cer

Arquivo gerado:

  • novo_certificado_certificate.cer — certificado público

Listar arquivos: - Linux/Mac → ls - Windows → dir

Criar o arquivo .PFX

Esse arquivo é utilizado no Postman ou na aplicação cliente.

keytool -importkeystore -srckeystore novo_certificado.jks -destkeystore novo_certificado_keypair.pfx -deststoretype PKCS12 -alias novo_certificado

Após concluir, você terá:

- novo_certificado.cer — chave pública

- novo_certificado.jks — keystore com chave privada

- novo_certificado_keypair.pfx — arquivo PKCS12 a ser utilizado no cliente