Здесь приведен пример создания сертификатов для двух серверов. На этом примере также можно сгенерировать клиентские сертификаты для WNAM 2.

Создание самозаверяющего сертификата CA.

openssl genpkey -algorithm RSA -out ca.key
openssl req -x509 -new -key ca.key -days 3650 -out ca.crt \
-subj "/C=RU/ST=NA/L=Moscow/O=Demo/CN=domain.ru/emailAddress=admin@domain.ru"

Сгенерируйте закрытыe ключи серверов и запросы на подпись сертификатов (CSR).

openssl req -new -newkey rsa:4096 -nodes -keyout server1.key -out server1.csr \
-subj "/C=RU/ST=NA/L=Moscow/O=Company Demo/CN=kafka1.domain.ru/emailAddress=admin@domain.ru"

openssl req -new -newkey rsa:4096 -nodes -keyout server2.key -out server2.csr \
-subj "/C=RU/ST=NA/L=Moscow/O=Company Demo/CN=kafka2.domain.ru/emailAddress=admin@domain.ru"

Создайте файл san.cnf.

Расширение SAN позволяет включать дополнительные имена субъектов, такие как доменные имена или IP-адреса, в один сертификат, что позволяет сделать сертификат  действительным для нескольких объектов или альтернативных имен.
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1=*.domain.ru

Сгенерируйте и подпишите сертификаты серверов.

openssl x509 -req -in server1.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server1.crt \
-days 3650 -extfile san.cnf

openssl x509 -req -in server2.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server2.crt \
-days 3650 -extfile san.cnf

Преобразование сертификатов серверов в PKCS12.

openssl pkcs12 -export -in  server1.crt -inkey server1.key -name kafka-broker1 -out kafka1.p12
openssl pkcs12 -export -in  server2.crt -inkey server2.key -name kafka-broker2 -out kafka2.p12

Создание Kafka KeyStore (JKS).

keytool -importkeystore -srckeystore kafka1.p12 -destkeystore kafka1.keystore.jks -srcstoretype pkcs12
keytool -importkeystore -srckeystore kafka2.p12 -destkeystore kafka2.keystore.jks -srcstoretype pkcs12

Создание Kafka TrustStore.

keytool -keystore kafka.truststore.jks -alias CARoot -import -file ca.crt
  • No labels