啟用GCM密碼套件

啟用AES-GCM加密(GCM密碼套件),用於與其他集群的SSL連接。解決javax.net.ssl.SSLHandshakeException錯誤。

寫的xin.wang

最後發布日期:2022年12月8日

使用Databricks Runtime 9.1 LTS及以下版本的Databricks集群默認情況下不啟用GCM (Galois/Counter Mode)密碼套件。

必須在集群上啟用GCM密碼套件才能連接到需要GCM密碼套件的外部服務器。

刪除

信息

本文適用於使用Databricks Runtime 7.3 LTS和9.1 LTS的集群。Databricks Runtime 10.4 LTS及以上版本默認啟用了GCM密碼套件。


驗證所需的密碼套件

使用nmap實用程序來驗證外部服務器需要哪些密碼套件。

%sh nmap——script ssl-enum-cipher -p   .使用實例
刪除

請注意

如果nmap未安裝,運行Sudo apt-get install -y nmap在您的集群上安裝它。

創建一個初始化腳本以啟用GCM密碼套件

使用示例代碼創建在集群上啟用GCM密碼套件的init腳本。

% python dbutils.fs.put(“/ < path-to-init-script > / enable-gcm.sh”,“”“# !/bin/bash sed -i 's/, GCM//g' /databricks/spark/dbconf/java/extra.使用實例安全”“”,真的)
% scala dbutils.fs.put(“/ < path-to-init-script > / enable-gcm.sh”,“”“# !/bin/bash sed -i 's/, GCM//g' /databricks/spark/dbconf/java/extra.使用實例安全”“”,真的)

記住初始化腳本的路徑。在配置集群時將需要它。

使用init腳本配置集群

按照文檔配置集群範圍的初始化腳本(AWS|Azure|GCP).

必須指定初始化腳本的路徑。

初始化腳本配置完成後,需要重啟集群。

驗證是否啟用了GCM密碼套件

這個示例代碼在集群中查詢所有受支持的密碼套件,然後打印輸出。

導入java.util.Map;進口java.util.TreeMap;import javax.net.ssl.SSLServerSocketFactory import javax.net.ssl._ SSLContext.getDefault.getDefaultSSLParameters.getProtocols.foreach(println)

如果啟用了GCM密碼套件,您將在輸出中看到以下AES-GCM密碼。

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256TLS_DHE_DSS_WITH_AES_128_GCM_SHA256

連接外部服務器

一旦您驗證了在集群上安裝了GCM密碼套件,就可以連接到外部服務器。

這篇文章有用嗎?