Kafka配置1--Windows环境安装和配置Kafka

Kafka配置2--Windows下配置Kafka的SASL-PLAIN身份验证

Kafka配置3--Windows下配置Kafka集群

Kafka配置4--Windows下配置Kafka的SSL证书

Kafka配置5--Windows下配置Kafka的集群+SASL+SSL

Kafka配置6--Windows下设置和增加SASL用户或用户权限

修改hosts,配置主机名称

    Windows路径为C:\Windows\System32\drivers\etc,在hosts文件中追加如下配置:

    # Kafka相关配置

    192.168.2.200 kafka-main

Kafka配置4--Windows下配置Kafka的SSL证书_kafka

1、服务器端SSL证书签发

    1.1、生成kafka1.keystore.jks

        以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -keystore D:\Net_Program\Net_KafkaSsl\kafka1.keystore.jks -alias kafka1 -validity 3650 -genkey -keyalg RSA

        紧接着就是输入2次密码,如qubernet

        您的名字与姓氏是什么? 输入主机的IP地址或主机绑定的域名,如kafka-main

        您的组织单位名称是什么? ~ 该单位的双字母国家/地区代码是什么? 都输入cn

        最后在确定没有问题后输入y确认

        再次输入密码qubernet

Kafka配置4--Windows下配置Kafka的SSL证书_SSL_02

    1.2、生成CA

        以管理员身份运行CMD,然后输入如下命令:

openssl req -new -x509 -keyout D:\Net_Program\Net_KafkaSsl\ca-key -out D:\Net_Program\Net_KafkaSsl\ca-cert -days 3650

        紧接着就是输入2次密码,如qubernet

        Country Name (2 letter code) [AU] ~ Organizational Unit Name (eg, section) [] 都输入cn

        Common Name (e.g. server FQDN or YOUR name) [] 输入主机的IP地址或主机绑定的域名,如kafka-main

        Email Address [] 输入一个邮箱地址,如qubernet@163.com

Kafka配置4--Windows下配置Kafka的SSL证书_java安装_03

    1.3、创建truststore.jks

        以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -keystore D:\Net_Program\Net_KafkaSsl\ca.truststore.jks -alias CARoot -import -file D:\Net_Program\Net_KafkaSsl\ca-cert

        紧接着就是输入2次密码,如qubernet

        然后输入y确定

Kafka配置4--Windows下配置Kafka的SSL证书_java安装_04

    1.4、对keystore进行签名

        1.4.1、从keystore中导出未签名的证书

            以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -keystore D:\Net_Program\Net_KafkaSsl\kafka1.keystore.jks -alias kafka1 -certreq -file D:\Net_Program\Net_KafkaSsl\cert-kafka1

            紧接着输入密码qubernet

Kafka配置4--Windows下配置Kafka的SSL证书_java安装_05

        1.4.2、使用CA对上一步导出的cert-kafka1进行签名

            以管理员身份运行CMD,然后输入如下命令:


openssl x509 -req -CA D:\Net_Program\Net_KafkaSsl\ca-cert -CAkey D:\Net_Program\Net_KafkaSsl\ca-key -in D:\Net_Program\Net_KafkaSsl\cert-kafka1 -out D:\Net_Program\Net_KafkaSsl\cert-signed-kafka1 -days 3650 -CAcreateserial -passin pass:qubernet

Kafka配置4--Windows下配置Kafka的SSL证书_kafka_06

        1.4.3、将CA证书和签名过的证书导入到keystore

            以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -keystore D:\Net_Program\Net_KafkaSsl\kafka1.keystore.jks -alias CARoot -import -file D:\Net_Program\Net_KafkaSsl\ca-cert

            紧接着就是输入1次密码,如qubernet

            然后输入y确定

Kafka配置4--Windows下配置Kafka的SSL证书_java安装_07


keytool -keystore D:\Net_Program\Net_KafkaSsl\kafka1.keystore.jks -alias kafka1 -import -file D:\Net_Program\Net_KafkaSsl\cert-signed-kafka1

            紧接着就是输入1次密码,如qubernet

            然后输入y确定

Kafka配置4--Windows下配置Kafka的SSL证书_kafka_08

到此,服务端的SSL证书就生成完成了,我们可以使用一下命令来测试下证书是否正确(前提条件是Kafka服务中已经配置了SSL证书)


openssl s_client -debug -connect kafka-main:9092 -tls1

Kafka配置4--Windows下配置Kafka的SSL证书_java_09

2、客户端端SSL证书签发

    客户端SSL证书的生成和服务端类似


    2.1、

        以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -keystore D:\Net_Program\Net_KafkaSsl\client.keystore.jks -alias client -validity 3650 -genkey -keyalg RSA

        紧接着就是输入2次密码,如qubernet

        您的名字与姓氏是什么? 输入主机的IP地址或主机绑定的域名,如kafka-main

        您的组织单位名称是什么? ~ 该单位的双字母国家/地区代码是什么? 都输入cn

        最后在确定没有问题后输入y确认

        再次输入密码qubernet

Kafka配置4--Windows下配置Kafka的SSL证书_SSL_10

    2.2、

        以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -keystore D:\Net_Program\Net_KafkaSsl\client.keystore.jks -alias client -certreq -file D:\Net_Program\Net_KafkaSsl\cert-client

        紧接着就是输入1次密码,如qubernet

Kafka配置4--Windows下配置Kafka的SSL证书_SSL_11

    2.3、

        以管理员身份运行CMD,然后输入如下命令:


openssl x509 -req -CA D:\Net_Program\Net_KafkaSsl\ca-cert -CAkey D:\Net_Program\Net_KafkaSsl\ca-key -in D:\Net_Program\Net_KafkaSsl\cert-client -out D:\Net_Program\Net_KafkaSsl\cert-signed-client -days 3650 -CAcreateserial -passin pass:qubernet

Kafka配置4--Windows下配置Kafka的SSL证书_java安装_12

    2.4、

        以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -keystore D:\Net_Program\Net_KafkaSsl\client.keystore.jks -alias CARoot -import -file D:\Net_Program\Net_KafkaSsl\ca-cert

        紧接着就是输入1次密码,如qubernet

        然后输入y确定

Kafka配置4--Windows下配置Kafka的SSL证书_kafka_13

    2.5、

        以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -keystore D:\Net_Program\Net_KafkaSsl\client.keystore.jks -alias client -import -file D:\Net_Program\Net_KafkaSsl\cert-signed-client

        紧接着就是输入1次密码,如qubernet

Kafka配置4--Windows下配置Kafka的SSL证书_java安装_14

    2.6、生成C#所需的p12证书

        我们在使用C#客户端开发Kafka时,如果使用的是Confluent.Kafka库,则需要将client.keystore.jks生成对应p12格式的证书,输入如下命令即可:

        以管理员身份运行CMD,定位到Java安装目录的bin文件夹下,如D:\Net_Program\Net_Java\bin,然后输入如下命令:

keytool -importkeystore -srckeystore D:\Net_Program\Net_KafkaSsl\client.keystore.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore D:\Net_Program\Net_KafkaSsl\client.keystore.p12

Kafka配置4--Windows下配置Kafka的SSL证书_java_15


到此,客户端的SSL证书就生成完成了,生成的完整证书目录文件如下所示:

Kafka配置4--Windows下配置Kafka的SSL证书_kafka_16