溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Pulsar TLS進(jìn)行傳輸加密

發(fā)布時間:2020-06-18 18:16:41 來源:億速云 閱讀:552 作者:元一 欄目:大數(shù)據(jù)

Apache Pulsar 是一個企業(yè)級的分布式消息系統(tǒng),最初由 Yahoo 開發(fā),在 2016 年開源,并于2018年9月畢業(yè)成為 Apache 基金會的頂級項(xiàng)目。Pulsar 已經(jīng)在 Yahoo 的生產(chǎn)環(huán)境使用了三年多,主要服務(wù)于Mail、Finance、Sports、 Flickr、 the Gemini Ads platform、 Sherpa (Yahoo 的 KV 存儲)。

Pulsar是一種用于服務(wù)器到服務(wù)器消息傳遞的多租戶,高性能解決方案。

默認(rèn)情況下,Apache Pulsar客戶端以純文本與Apache Pulsar服務(wù)通信??梢酝ㄟ^配置TLS傳輸加密,開啟TLS要影響傳輸性能。以下是具體配置Pulsar TLS操作和注意事項(xiàng)。(Pulsar 2.4.2版本測試通過)      

        一  創(chuàng)建根證書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:  服務(wù)器域名或是ip
         Email Address:郵件
         $ chmod 444 certs/ca.cert.pem

         二 生成服務(wù)器證書
         生成服務(wù)器證書密鑰
         $ openssl genrsa -out broker.key.pem 2048
         $ openssl pkcs8 -topk8 -inform PEM -outform PEM \
           -in broker.key.pem -out broker.key-pk8.pem -nocrypt
          生成服務(wù)器證書請求,根據(jù)提示填寫信息國家等基本信息和CA根證書一一致。
          Common Name要填寫服務(wù)器的域名(單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文件中
        默認(rèn)brokerServicePortTls  webServicePortTls為空,不啟動TLS通過填寫端口號告訴服務(wù)器開啟TL通道,
        如果相關(guān)閉普通通道把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 如果配置了我使用客戶端測試時會不通過。此兩項(xiàng)不填寫測試可以通過。

        四 配置完成broker.conf啟動Broker查看日志文件提示以下信息說明服務(wù)端開啟了TLS服務(wù)
         Started PulsarServerConnector@6a2eea2a{SSL,[ssl, http/1.1]}{0.0.0.0:8443}

        五 JAVA客戶端測試
           1)拷出剛才生成的公有證書 /data/my-ca/certs/ca.cert.pem 放到客戶端服務(wù)上
           2)java 主要代碼,發(fā)送或接收數(shù)據(jù)正常說明配置成功
             PulsarClient client =PulsarClient.builder()
                .serviceUrl(url)
                .tlsTrustCertsFilePath("D:/jar/ca.cert.pem")//客戶端服務(wù)器上公有證書路徑
                .enableTlsHostnameVerification(false) 
                .allowTlsInsecureConnection(false)
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI