Здесь приведен пример создания сертификатов для двух серверов. На этом примере также можно сгенерировать клиентские сертификаты для WNAM.
# Создание самозаверяющего сертификата 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