如何导入一个定制的CA证书吗

学习如何定制CA证书导入到砖集群使用Python。

写的arjun.kaimaparambilrajan

去年发表在:2023年2月27日

使用Python时,您可能想要导入一个定制的CA证书,以避免端点连接错误。

ConnectionError: HTTPSConnectionPool(主机= my_server_endpoint,端口= 443):马克斯重试超过url: /端点(NewConnectionError (“< urllib3.connection所致。VerifiedHTTPSConnection对象在0 x7fb73dc3b3d0 >:未能建立一个新的连接:[Errno 110]连接超时”,)

导入一个或多个自定义CA证书砖集群:

  1. 创建一个init脚本,增加了整个CA链和设置REQUESTS_CA_BUNDLE属性。

    在这个例子中,PEM格式myca CA证书添加到文件。位于crt/ user /地方/分享/ ca证书/。这个文件是custom-cert中引用。sh init脚本。
  2. 一旦你创建了init脚本可以删除证书的位置。

    dbutils.fs.put(“/砖/ init脚本/ custom-cert。sh”、“”“# !/bin/bash猫< <“EOF”> /usr/local/share/ca-certificates / myca。crt - - - - - - - - - - -开始证书< CA链1证书内容> - - - - - - - - - - - - - - - -端证书开始证书- - - - - - < CA证书链2内容> - - - - - - - - - - -端证书EOF update-ca-certificates PEM_FILE = " / etc / ssl /证书/ myca。pem”密码= " <密码> " JAVA_HOME = $(指向- f /usr/bin/java | sed“年代:bin / java::”)密钥库= " $ JAVA_HOME / lib /安全/ cacerts”确实的事情= $ (grep“证书终结”PEM_FILE美元| wc - l) #与keytool处理多个证书,你需要从pem中提取#每一个文件并将其导入java KEYSTORE。对N (seq 0美元(($确实的事情- 1)));做别名= " (basename PEM_FILE美元)- N”美元回声“美元增加密钥别名:别名”猫PEM_FILE美元| awk“N = = ${打印};/证书/ {n + +}”| keytool -noprompt进口-trustcacerts \别名别名KEYSTORE KEYSTORE美元对于storepass密码做呼应“美元出口REQUESTS_CA_BUNDLE = / etc / ssl /证书/ ca证书。crt " > > /砖/ / conf / spark-env火花。sh”“”)

    使用定制CA证书DBFS保险丝(AWS|Azure|GCP),加上这条线的底部你的init脚本:

    /砖/ /脚本/ restart_dbfs_fuse_daemon.sh火花
  3. init脚本附加到集群作为集群级init脚本(AWS|Azure|GCP)。
  4. 重新启动集群。
这篇文章有用吗?