千家信息网

Pulsar TLS 传输加密

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,默认情况下,Apache Pulsar客户端以纯文本与Apache Pulsar服务通信。可以通过配置TLS传输加密,开启TLS要影响传输性能。 以下是具体配置Pulsar TLS操作和
千家信息网最后更新 2025年02月02日Pulsar TLS 传输加密
        默认情况下,Apache Pulsar客户端以纯文本与Apache Pulsar服务通信。可以通过配置TLS传输加密,开启TLS要影响传输性能。        以下是具体配置Pulsar TLS操作和注意事项。(Pulsar 2.4.2版本测试通过)        一  创建根证书CA        /data目录下        $ mkdir my-ca        $ cd my-ca        $ wget --no-check-certificate https://raw.githubusercontent.com/apache/pulsar/master/site2/website/static/examples/openssl.cnf        $ export CA_HOME=$(pwd)        $ mkdir certs crl newcerts private        $ chmod 700 private/        $ touch index.txt        $ echo 1000 > serial        生成根证书的私钥,需要录入秘密,记录此密码后边会使用        $ openssl genrsa -aes256 -out private/ca.key.pem 4096        生成根证书CA        $openssl req -config openssl.cnf -key private/ca.key.pem \         -new -x509 -days 7300 -sha256 -extensions v3_ca \         -out certs/ca.cert.pem        1)先录入上边的私钥密码        2)填写信息,记录录入的信息后边用到         Country Name (2 letter code):CN  //国家名         State or Province Name:beijing    //省名         Locality Name:beijing                   //城市名         Organization Name:test               //组织名称         Organizational Unit Name:test    //组织单位名称         Common Name:  服务器域名或是ip         Email Address:邮件         $ chmod 444 certs/ca.cert.pem         二 生成服务器证书         生成服务器证书密钥         $ openssl genrsa -out broker.key.pem 2048         $ openssl pkcs8 -topk8 -inform PEM -outform PEM \           -in broker.key.pem -out broker.key-pk8.pem -nocrypt          生成服务器证书请求,根据提示填写信息国家等基本信息和CA根证书一一致。          Common Name要填写服务器的域名(单Broker可以填写IP)         $ openssl req -config openssl.cnf \           -key broker.key.pem -new -sha256 -out broker.csr.pem                  $ openssl ca -config openssl.cnf -extensions server_cert \           -days 1000 -notext -md sha256 \           -in broker.csr.pem -out broker.cert.pem        三 Broker配置        broker.conf文件中        默认brokerServicePortTls  webServicePortTls为空,不启动TLS通过填写端口号告诉服务器开启TL通道,        如果相关闭普通通道把brokerServicePort和webServicePort的端口去掉。        brokerServicePort=6650             brokerServicePortTls=6651        webServicePort=8080        webServicePortTls=8443        tlsCertificateFilePath=/data/my-ca/broker.cert.pem        tlsKeyFilePath=/data/my-ca/broker.key-pk8.pem        tlsTrustCertsFilePath=/data/my-ca/certs/ca.cert.pem        注意:官方文档中tlsProtocols tlsCiphers 如果配置了我使用客户端测试时会不通过。此两项不填写测试可以通过。        四 配置完成broker.conf启动Broker查看日志文件提示以下信息说明服务端开启了TLS服务         Started PulsarServerConnector@6a2eea2a{SSL,[ssl, http/1.1]}{0.0.0.0:8443}        五 JAVA客户端测试           1)拷出刚才生成的公有证书 /data/my-ca/certs/ca.cert.pem 放到客户端服务上           2)java 主要代码,发送或接收数据正常说明配置成功             PulsarClient client =PulsarClient.builder()                .serviceUrl(url)                .tlsTrustCertsFilePath("D:/jar/ca.cert.pem")//客户端服务器上公有证书路径                .enableTlsHostnameVerification(false)                 .allowTlsInsecureConnection(false)
0