ESTE É UM CONTEÚDO EM DESENVOLVIMENTO E NÃO DEVE SER CONSIDERADO COMO VERSÃO FINAL!
Clique aqui para maiores informações
Configurando Certificados
No Open Finance Brasil foi definido que a comunicação entre o servidor Kafka e seus clientes seria exclusivamente utilizando mTLS, portanto a geração de certificado do servidor Kafka e a configuração da truststore para permitir a utilização de certificados BRCAC(também conhecidos como certificado de transporte ou aplicação) para os clientes (consumers) é parte fundamental deste processo.
Ainda não foi definido se o certificado do servidor Kafka precisa ser um certificado ICP Brasil (assim como é para os authorization servers), portanto neste exemplo utilizamos certificados auto-assinados para o servidor Kafka e para os produtores (producers). Os clients (consumers) precisarão apresentar um certificado BRCAC emitido por uma das autoridades certificadores homologadas para o Open Finance Brasil.
Não serão usados certificados auto assinados
Antes de começar, vamos criar uma pasta onde os arquivos serão gerados:
mkdir ssl
Como iremos trabalhar com certificados auto-assinado tanto para o servidor Kafka quanto para os produtores (producers), precisamos gerar o certificado da AC que irá assinar os demais certificados.
openssl \
req -new -x509 \
-keyout ssl/ca-key \
-out ssl/ca-cert \
-days 3650 \
-subj "/CN=Autoridade Certificadora de Auto-assinados" \
-nodes
O comando acima deve ter criado a chave privada (ca-key) da nossa AC que será usada para assinar os demais certificados e também deve ter criado a chave pública (ca-cert) da AC, que será utilizado posteriomente na truststore para que permita conexões com certificados que foram assinados por essa AC.
Criando o certificado para o servidor Kafka
Primeiro vamos gerar a chave privada
openssl genrsa -out ssl/kafka-server.key 2048
Vamos agora gerar o pedido de certificado para ser assinado pela nossa AC
Obs: Altere a CN do comando acima para o seu host
Agora vamos assinar o certificado com nossa AC
Após executar os comandos acima você deve ter os arquivos kafka-server.key, kafka-server.csr e kafka-server.crt no seu diretório ssl. Destes 3, apenas 2 são úteis a partir de agora, então você pode apagar o arquivo kafka-server.csr se quiser:
Pronto! Já temos o certificado do servidor Kafka. Agora precisamos coloca-los no formato correto (JKS) para que seja possível sua utilização.
Gerando o arquivo keystore em formato JKS
Por padrão, o Kafka utiliza arquivos JKS para configuração de keystore e truststore, então iremos agora fazer a criação destes arquivos e a inserção das chaves que geramos nos passos anteriores dentro dos arquivos JKS.
A keystore é o arquivo que contém o certificado do servidor Kafka, portanto iremos fazer a criação dele e em seguida inserir o certificado do servidor Kafka que foi gerado anteriormente.
Crie a keystore com uma chave dummy temporária (porque o keytool não permite criar uma keystore vazia)
Obs: Altere a senha teste123 por uma senha de sua preferência
Deixa a keystore vazia apagando a chave dummy
Obs: Altere a senha teste123 pela senha informada no comando anterior
Importe o certificado da nossa AC dentro da keystore
Obs: Altere a senha teste123 pela senha informada no primeiro comando
Para importar o certificado do servidor Kafka dentro da keystore, precisamos fazer 2 passos. Primeiro temos que unir as chaves pública e privada em um arquivo p12 e então importar na keystore. Crie o arquivo p12 com o comando abaixo
Obs: Altere a senha teste123 por uma senha temporária, pois o arquivo será descartado em seguida
Importe o arquivo p12 do servidor Kafka dentro da keystore
Obs: Altere a senha teste123 do atributo -storepass pela senha informada no primeiro comando e a senha teste123 do atributo -scrstorepass pela senha informada no comando anterior
Pronto! Já temos a keystore do servidor Kafka.
Gerando o arquivo truststore em formato JKS
A truststore é o arquivo que contêm os certificados das AC's que o servidor Kafka entenderá como confiáveis para emissão de certificados dos consumidores (consumers) e produtores (producers). Ou seja, quem tiver um certificado emitido por um AC que conste na truststore poderá ser conectar ao servidor Kafka. Neste primeiro momento iremos adicionar apenas nossa AC’s para os consumidores.
Crie a truststore com uma chave dummy temporária (porque o keytool não permite criar uma truststore vazia)
Obs: Altere a senha teste123 por uma senha de sua preferência
Deixa a trustore vazia apagando a chave dummy
Obs: Altere a senha teste123 pela senha informada no comando anterior
Importe o certificado da nossa AC dentro da truststore
Obs: Altere a senha teste123 pela senha informada no primeiro comando
Related content
ESTE É UM CONTEÚDO EM DESENVOLVIMENTO E NÃO DEVE SER CONSIDERADO COMO VERSÃO FINAL!
Clique aqui para maiores informações