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

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

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

    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 [] 输入一个邮箱地址,如[email protected]

    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确定

    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

        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

        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确定

                

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确定

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

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


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

    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

    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

    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确定

    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

    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


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

猜你喜欢

转载自blog.csdn.net/qubernet/article/details/105295062