Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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.

...

Criando

...

a

...

Autoridade

...

Certificadora

...

para

...

certificados

...

auto-assinados

...

Antes

...

de

...

começar,

...

vamos

...

criar

...

uma

...

pasta

...

onde

...

os

...

arquivos

...

serão

...

gerados:

...

Bloco de código
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.

...

Bloco de código
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

Bloco de código
openssl genrsa -out ssl/kafka-server.key 2048
```

Vamos

...

agora

...

gerar

...

o

...

pedido

...

de

...

certificado

...

para

...

ser

...

assinado

...

pela

...

nossa

...

AC

Bloco de código
openssl req -new -key ssl/kafka-server.key -out ssl/kafka-server.csr -subj "/CN=kafka.meudominio.dev.br"
```
_

Obs:

...

Altere

...

a

...

CN

...

do

...

comando

...

acima

...

para

...

o

...

seu

...

host

...

Agora

...

vamos

...

assinar

...

o

...

certificado

...

com

...

nossa

...

AC

Bloco de código
openssl x509 -req -in ssl/kafka-server.csr -CA ssl/ca-cert -CAkey ssl/ca-key -CAcreateserial -out ssl/kafka-server.crt -days 3650 -sha256
```

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:

...

Bloco de código
rm ssl/kafka-server.csr
```

Pronto!

...

...

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)

...

Bloco de código
keytool -genkeypair -alias dummy -keyalg RSA -keystore ssl/kafka-server-keystore.jks -storepass teste123 -dname "CN=Dummy" -keypass teste123
```
_

Obs:

...

Altere

...

a

...

senha

...

teste123

...

por

...

uma

...

senha

...

de

...

sua

...

preferência

...

Deixa

...

a

...

keystore

...

vazia

...

apagando

...

a

...

chave

...

dummy

Bloco de código
keytool -delete -alias dummy -keystore ssl/kafka-server-keystore.jks -storepass teste123
```
_

Obs:

...

Altere

...

a

...

senha

...

teste123

...

pela

...

senha

...

informada

...

no

...

comando

...

anterior

...

Importe

...

o

...

certificado

...

da

...

nossa

...

AC

...

dentro

...

da

...

keystore

Bloco de código
keytool -importcert -alias ca-cert -file ssl/ca-cert -keystore ssl/kafka-server-keystore.jks -storepass teste123 -noprompt
```
_

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

Bloco de código
openssl pkcs12 -export -inkey ssl/kafka-server.key -in ssl/kafka-server.crt -name kafka-server -out ssl/kafka-server.p12 -password pass:teste123
```
_

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

Bloco de código
keytool -importkeystore -destkeystore ssl/kafka-server-keystore.jks -srckeystore ssl/kafka-server.p12 -srcstoretype PKCS12 -alias kafka-server -storepass teste123 -srcstorepass teste123
```
_

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!

...

...

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,

...

mas

...

em

...

um

...

passo

...

futuro,

...

iremos

...

adicionar

...

as

...

ACs

...

homologadas

...

pelo

...

Open

...

Finance

...

Brasil.

...

Crie

...

a

...

truststore

...

com

...

uma

...

chave

...

dummy

...

temporária

...

(porque

...

o

...

keytool

...

não

...

permite

...

criar

...

uma

...

truststore

...

vazia)

...

Bloco de código
keytool -genkeypair -alias dummy -keyalg RSA -keystore ssl/kafka-server-truststore.jks -storepass teste123 -dname "CN=Dummy" -keypass teste123
```
_

Obs:

...

Altere

...

a

...

senha

...

teste123

...

por

...

uma

...

senha

...

de

...

sua

...

preferência

...

Deixa

...

a

...

trustore

...

vazia

...

apagando

...

a

...

chave

...

dummy

Bloco de código
keytool -delete -alias dummy -keystore ssl/kafka-server-truststore.jks -storepass teste123
```
_

Obs:

...

Altere

...

a

...

senha

...

teste123

...

pela

...

senha

...

informada

...

no

...

comando

...

anterior

...

Importe

...

o

...

certificado

...

da

...

nossa

...

AC

...

dentro

...

da

...

truststore

Bloco de código
keytool -importcert -alias ca-cert -file ssl/ca-cert -keystore ssl/kafka-server-truststore.jks -storepass teste123 -noprompt
```
_

Obs:

...

Altere

...

a

...

senha

...

teste123

...

pela

...

senha

...

informada

...

no

...

primeiro

...

comando

...