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

如何使用xk6-kafka结合*-keystore.jks与*-truststore.jks连接Kafka?

用JKS文件连接Kafka的配置步骤

你的代码需要PEM格式的证书文件,但当前持有的是JKS格式的密钥库/信任库,所以得先把JKS里的内容转换成PEM格式,再填入代码配置中。

1. 从JKS导出证书和密钥到PEM格式

导出客户端证书(对应clientCertPem)

先用keytool从JKS导出DER格式证书,再转成PEM:

keytool -exportcert -alias <你的证书别名> -keystore <你的keystore.jks> -file client.cer
openssl x509 -inform der -in client.cer -out client-cert.pem

导出客户端私钥(对应clientKeyPem)

JKS私钥需先转成PKCS12格式,再导出PEM:

keytool -importkeystore -srckeystore <你的keystore.jks> -destkeystore client.p12 -deststoretype PKCS12
openssl pkcs12 -in client.p12 -nocerts -out client-key.pem
# 若客户端库要求无密码私钥,可执行此步骤(可选)
openssl rsa -in client-key.pem -out client-key-unencrypted.pem

导出CA证书(对应serverCaPem)

如果JKS是信任库,导出CA证书:

keytool -exportcert -alias <CA证书别名> -keystore <你的truststore.jks> -file ca.cer
openssl x509 -inform der -in ca.cer -out ca-cert.pem

2. 修改代码配置

将生成的PEM文件内容填入配置,同时注意生产环境的安全设置:

const SASL_SSL = "SASL_SSL"; // 确保常量定义正确

const saslConfig = {
    algorithm: SASL_SSL,
    // 若集群需要SASL认证,补充用户名密码:
    // username: "<你的用户名>",
    // password: "<你的密码>"
};

const tlsConfig = {
    enableTls: true,
    insecureSkipTlsVerify: false, // 生产环境必须设为false,禁止跳过证书验证
    clientCertPem: fs.readFileSync("./client-cert.pem", "utf8"), // 读取本地PEM文件内容
    clientKeyPem: fs.readFileSync("./client-key-unencrypted.pem", "utf8"),
    serverCaPem: fs.readFileSync("./ca-cert.pem", "utf8"),
};

const writer = new Writer({
    brokers: ["<bootstrapServers>"],
    topic: "<kafkaTopic>",
    sasl: saslConfig,
    tls: tlsConfig,
});
const connection = new Connection({
    address: "<bootstrapServer>",
    sasl: saslConfig,
    tls: tlsConfig,
});

3. 关键注意事项

  • 导出过程中需正确输入JKS文件的密码
  • 生产环境绝对不能开启insecureSkipTlsVerify: true,否则会丢失TLS的安全校验能力
  • 确认Kafka集群已配置TLS客户端认证,若仅需服务端认证,可省略clientCertPem和clientKeyPem配置
  • 部分Node.js Kafka客户端可能支持直接加载JKS文件,但主流库通常要求PEM格式,按上述转换即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:55:15