微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【spark】elasticsearch自签证书,spark进行读写

  • 颁发自签证书

  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.p12elastic-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"

 

 

  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐