您好,登錄后才能下訂單哦!
默認情況下,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)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。