You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark Streaming连接Kafka时如何使用SSL证书完成认证?

Spark Streaming + Kafka SSL 认证配置指南

证书分配规则

  • Truststore:存放CA证书(ssl_cafile),用于验证Kafka Broker的SSL证书合法性
  • Keystore:存放客户端证书(ssl_certfile)和客户端私钥(ssl_keyfile),用于Broker验证客户端身份

一、将PEM证书转换为JKS格式

1. 生成Truststore(CA证书)

使用keytool命令直接将PEM格式的CA证书导入JKS信任库:

keytool -importcert -alias kafka-ca -file /path/to/ssl_cafile.pem -keystore kafka.truststore.jks -storepass your-truststore-password
  • 执行时会提示是否信任该证书,输入yes确认
  • 务必记住storepass,后续Spark配置需要用到

2. 生成Keystore(客户端证书+私钥)

keytool无法直接处理PEM格式的私钥,需先通过openssl将证书和私钥合并为PKCS12格式,再转换为JKS:

步骤1:合并证书与私钥为PKCS12文件

openssl pkcs12 -export -in /path/to/ssl_certfile.pem -inkey /path/to/ssl_keyfile.pem -out client.p12 -name kafka-client -password pass:your-p12-password
  • -name指定别名(示例为kafka-client),后续转换JKS时会用到
  • -password设置PKCS12文件的密码,需记录

步骤2:将PKCS12转换为JKS格式

keytool -importkeystore -srckeystore client.p12 -srcstoretype PKCS12 -srcstorepass your-p12-password -destkeystore kafka.keystore.jks -deststoretype JKS -deststorepass your-keystore-password -destalias kafka-client
  • deststorepass是最终JKS keystore的密码,需妥善保存
  • 若PKCS12的别名与JKS别名一致,-destalias参数可省略

二、Spark Streaming 配置参数

在Spark Streaming的Kafka配置中添加以下SSL相关参数:

val kafkaParams = Map[String, Object](
  "bootstrap.servers" -> "your-kafka-brokers:9093",
  "security.protocol" -> "SSL",
  "ssl.truststore.location" -> "/path/to/kafka.truststore.jks",
  "ssl.truststore.password" -> "your-truststore-password",
  "ssl.keystore.location" -> "/path/to/kafka.keystore.jks",
  "ssl.keystore.password" -> "your-keystore-password",
  "ssl.key.password" -> "your-p12-password"  // 此处填写PKCS12文件的密码,即客户端私钥密码
)
  • 若客户端私钥有独立密码(与PKCS12密码不同),ssl.key.password需填写私钥专属密码
  • 确保Spark任务能访问到keystore和truststore文件,可将文件上传至集群节点指定路径,或通过分布式文件系统(如HDFS)加载

注意事项

  • 所有密码需保持配置一致,避免认证失败
  • 转换过程中生成的临时PKCS12文件可删除,仅保留最终JKS文件
  • 若Kafka Broker要求双向认证,必须同时配置keystore和truststore;仅单向认证时,只需配置truststore(生产环境多为双向认证)

内容的提问来源于stack exchange,提问作者nagibator_archivator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:02:20