【spark】elasticsearch自簽證書,spark進行讀寫
阿新 • • 發佈:2020-12-20
- 頒發自簽證書
1) 列出keystore中的證書
keytool -list
預設情況下,它會在你的 $HOME 目錄下產生一個空的 .keystore 檔案。如要指定 Java 正在用的 keystore 檔案,使用以下引數
keytool -list -keystore $JAVA_HOME/lib/security/cacerts
注意一下, keystore 檔案都受 密碼 保護。生成新的 keystore 檔案時,會要求你輸入一個新密碼;而當訪問一個已有的 keystore 檔案時,會要求你驗證密碼。
2) 獲取es的http證書
./bin/elasticsearch-certutil cert --pem elastic-stack-ca.p12
在certificate-bundle.zip中獲取ca.crt
openssl s_client -connect google.com:443 < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ca.crt
3) 匯入證書
keytool -import -alias <證書別名> -keystore $JAVA_HOME/jre/lib/security/cacerts -file ca.crt
匯入時會需要驗證密碼,預設密碼見上面
4) 儲存keystore 用於程式使用
- elasticsearch配置
1) elasticsearch生成金鑰
執行./bin/elasticsearch-certutil ca 生成elastic-stack-ca.p12
執行./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 生成elastic-certificates.p12
依次輸入生成cert.zip的檔名,節點資訊和IP,會在當前目錄生成一個zip壓縮包。指定
將elastic-stack-ca.p12
和elastic-certificates.p12
拷貝到config/certs
修改config/elasticsearch.yml
xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12 xpack.monitoring.collection.enabled: true #啟用https xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12 xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12
5) spark讀取es
val df = sparkSession.read .format("org.elasticsearch.spark.sql") .options(configMap) .load()
其中options 為key-value的es 配置,參考es官方文件
其中配置ssl:"es.net.ssl.truststore.location","es.net.ssl.truststore.pass"