zookeeper和kafka的SSL開(kāi)啟都可單獨(dú)進(jìn)行
生成SSL證書(shū)
使用jre自帶的keytool工具生成,linux和windows下生成的證書(shū)可以通用
- 生成含有一個(gè)私鑰的keystore文件,有效期10年(本文證書(shū)密碼統(tǒng)一使用test123)
keytool -genkeypair -alias certificatekey -dname “CN=127.0.0.1, OU=127.0.0.1, O=127.0.0.1, L=SH, ST=SH, C=CN” -keyalg RSA -validity 3650 -keystore keystore.jks - 查看生成的keystore文件
keytool -list -v -keystore keystore.jks - 導(dǎo)出證書(shū)
keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer - 導(dǎo)入證書(shū)到truststore文件中
keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore.jks - 查看生成的truststore文件
keytool -list -v -keystore truststore.jks
zookeeper開(kāi)啟SSL
受版本影響,需要3.5及以上版本才能正常開(kāi)啟,(可查看 libs/zookeeper-xxx.jar確認(rèn)版本號(hào))
- 將生成的證書(shū)文件統(tǒng)一放在kafka安裝路徑ssl文件夾(需要新建)
- 編輯config/zookeeper.properties配置文件,添加下列配置
#開(kāi)啟SSL
#ssl端口
secureClientPort=3183
#開(kāi)啟ssl使用的本機(jī)訪問(wèn)地址
secureClientPortAddress=127.0.0.1
serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory
ssl.keyStore.location=/home/app/kafka/ssl/keystore.jks
ssl.keyStore.password=test123
ssl.trustStore.location=/home/app/kafka/ssl/truststore.jks
ssl.trustStore.password=test123
若注釋掉原本的 clientPort配置則可以屏蔽非SSL的訪問(wèn)地址
- Kafka配置zookeeper ssl連接
編輯 config/server.properties, 開(kāi)啟SSL并配置上證書(shū)和證書(shū)庫(kù)路徑以及相應(yīng)密碼,配置如下:
zookeeper.connection.timeout.ms=18000
zookeeper.connect=127.0.0.1:3183
zookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty
zookeeper.ssl.client.enable=true
zookeeper.client.secure=true
zookeeper.ssl.hostnameVerification=false
zookeeper.ssl.keystore.location=/home/app/kafka/ssl/keystore.jks
zookeeper.ssl.keystore.password=test123
zookeeper.ssl.truststore.location=/home/app/kafka/ssl/truststore.jks
zookeeper.ssl.truststore.password=test123
kafka開(kāi)啟SSL
修改kafka安裝路徑下 config/server.properties文件,將kafka連接協(xié)議改為SSL,并配置上證書(shū)和證書(shū)庫(kù)路徑以及相應(yīng)密碼,如下:
#IP地址使用實(shí)際kafka服務(wù)器IP地址(需自己更換下面的ip)
listeners =SSL://192.168.6.6:9093
#server.keystore.jks的地址
ssl.keystore.location=/home/app/kafka/ssl/keystore.jks
ssl.keystore.password=test123
ssl.truststore.location=/home/app/kafka/ssl/truststore.jks
ssl.truststore.password=test123
ssl.client.auth=required
ssl.enabled.protocols=TLSv1.2
ssl.keystore.type=JKS
ssl.truststore.type=JKS
#關(guān)閉主機(jī)名
ssl.endpoint.identification.algorithm=
#設(shè)置內(nèi)部訪問(wèn)也用SSL,默認(rèn)值為security.inter.broker.protocol=PLAINTEXT
security.inter.broker.protocol=SSL
測(cè)試
啟動(dòng)zookeeper服務(wù):
bin/zookeeper-server-start.sh config/zookeeper.properties
啟動(dòng)kafka服務(wù):
bin/kafka-server-start.sh config/server.properties
創(chuàng)建客戶端連接配置文件 client-ssl.properties
security.protocol=SSL
ssl.enabled.protocols=TLSv1.2
ssl.truststore.location=/home/app/kafka/ssl/truststore.jks
ssl.truststore.password=test123
ssl.keystore.location=/home/app/kafka/ssl/keystore.jks
ssl.keystore.password=test123
ssl.key.password=test123
ssl.endpoint.identification.algorithm=
創(chuàng)建帶證書(shū)校驗(yàn)的生產(chǎn)者
bin/kafka-console-producer.sh --broker-list 192.168.6.6:9093 --topic test --producer.config client-ssl.properties
另起窗口創(chuàng)建帶證書(shū)校驗(yàn)的消費(fèi)者
bin/kafka-console-consumer.sh --broker-list 192.168.6.6:9093 --topic test --consumer.config client-ssl.properties文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-799120.html
嘗試在生產(chǎn)者窗口中輸入任意字符回車(chē),若消費(fèi)者窗口能正常接收則表示kafka運(yùn)行正常文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-799120.html
到了這里,關(guān)于kafka開(kāi)啟SSL認(rèn)證(包括內(nèi)置zookeeper開(kāi)啟SSL)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!