当前位置:   article > 正文

kafka SSL认证_kafka caroot.cer

kafka caroot.cer

认证参考官网,但是官网有一个坑,下面会讲到。

1.创建一个我文件夹mkdir cert用于存储一会儿生成的文件

2.在cert.sh脚本中写入如下内容

  1. #!/bin/bash
  2. #Step 1
  3. keytool -keystore server.keystore.jks -alias localhost -validity 365 -genkey
  4. #Step 2
  5. openssl req -new -x509 -keyout ca-key -out ca-cert -days 365
  6. keytool -keystore server.truststore.jks -alias CARoot -import -file ca-cert
  7. keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert
  8. #Step 3
  9. keytool -keystore server.keystore.jks -alias localhost -certreq -file cert-file
  10. openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 365 -CAcreateserial -passin pass:test1234
  11. keytool -keystore server.keystore.jks -alias CARoot -import -file ca-cert
  12. keytool -keystore server.keystore.jks -alias localhost -import -file cert-signed

3.执行上述脚本。会出现很多次提示输入密码等,根据实际情况输入即可。        

在当前目录下会生成如下内容

  1. ➜ ll
  2. 总用量 40K
  3. -rw-rw-r-- 1 root root 1.4K 1月 9 18:55 ca-cert
  4. -rw-rw-r-- 1 root root 41 1月 9 18:55 ca-cert.srl
  5. -rw------- 1 root root 1.9K 1月 9 18:54 ca-key
  6. -rw-rw-r-- 1 root root 1.6K 1月 9 18:55 cert-file
  7. -rw-rw-r-- 1 root root 2.0K 1月 9 18:55 cert-signed
  8. -rw-rw-r-- 1 root root 1.1K 1月 9 18:55 client.truststore.jks
  9. -rwxrwxr-x 1 root root 687 1月 9 18:53 gen_cert.sh
  10. -rw-rw-r-- 1 root root 4.1K 1月 9 18:55 server.keystore.jks
  11. -rw-rw-r-- 1 root root 1.1K 1月 9 18:55 server.truststore.jks

4.server.properties文件中添加如下配置,注意jks结尾文件的路径

  1. listeners=SSL://0.0.0.0:8082,CONTROLLER://:9093
  2. advertised.listeners=SSL://12.120.20.3:8082
  3. ssl.keystore.location=/data/cert/server.keystore.jks
  4. ssl.keystore.password=admin
  5. ssl.key.password=admin
  6. ssl.truststore.location=/data/cert/server.truststore.jks
  7. ssl.truststore.password=admin
  8. # 这一行官方文档没有,加上,否则可能报错,No subject alternative names present
  9. ssl.endpoint.identification.algorithm=
  10. # inter.broker.listener.name=PLAINTEXT # 这句注释掉,加入下面这句
  11. security.inter.broker.protocol=SSL

5.重启kafka

6.控制台生产者消费者client-ssl.properties(名称位置都随意,在使用的时候会指定文件)配置文件内容可以共用一个,写入如下内容。如果不需要控制台测试可以不写

  1. security.protocol=SSL
  2. ssl.truststore.location=/data/cert/client.truststore.jks
  3. ssl.truststore.password=admin
  4. # 这句必须有,否则报错:No subject alternative names present
  5. ssl.endpoint.identification.algorithm=

控制台生产者:bin/kafka-console-producer.sh --topic aa --bootstrap-server 172.20.2.3:8082 --producer.config config/kraft/client-ssl.properties。注意这里指定了上述配置我文件。

控制台消费者:bin/kafka-console-consumer.sh --bootstrap-server 172.20.2.3:8082 --topic aa --consumer.config config/kraft/client-ssl.properties。同样的这里指定了上述配置文件。

7.Springboot集成ssl认证的kafka

  1. spring:
  2. kafka:
  3. bootstrap-servers: 172.20.2.3:8082
  4. consumer:
  5. key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
  6. value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
  7. # 主要加入下面10行
  8. ssl:
  9. trust-store-password: admin
  10. trust-store-location: client.truststore.jks
  11. security:
  12. protocol: SSL
  13. properties:
  14. ssl:
  15. endpoint:
  16. identification:
  17. algorithm: ''
  18. producer:
  19. key-serializer: org.apache.kafka.common.serialization.StringSerializer
  20. value-serializer: org.apache.kafka.common.serialization.StringSerializer
  21. # 主要加入下面10行
  22. security:
  23. protocol: SSL
  24. properties:
  25. ssl:
  26. endpoint:
  27. identification:
  28. algorithm: ''
  29. ssl:
  30. trust-store-password: admin
  31. trust-store-location: client.truststore.jks

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/983182?site
推荐阅读
相关标签
  

闽ICP备14008679号