Leo Yeh's Blog

SAS 系統管理 (68)

教學目標

初步了解如何解決 SAS 9 平台「javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure」相關錯誤訊息。

重點概念

首先套用對應 SAS 平台的 JAVA 最新版本之 Hot Fix 壓縮檔,請參考官方文件

接著透過 openssl 工具查看 SSL 憑證加密演算法。

請注意需要轉換 Cipher Suites 為適當的參數格式,例如:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 要轉為 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 參數設定。

1
> openssl s_client -connect taml.bot.com.tw:443 -status

再來修改「D:\SASHome\SASFoundation\9.4\nls\xx\sasv9.cfg」檔案,在「-JREOPTIONS=(…)」中加入下述選項參數,主要設定 HTTPS 協定為 TLSv1.2。

1
2
3
-Djdk.tls.client.protocols=TLSv1.2
-Dhttps.protocols=TLSv1.2
-Dhttps.cipherSuites=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

最後重新啟動 SAS 平台所有伺服器的服務,並且登入 SAS Studio 網站輸入下述指令驗證相關資訊。

1
2
3
4
proc setinit;run;
proc product_status;
proc javainfo; run;
proc options option=jreoptions;

此外重新測試出現「Received fatal alert: handshake_failure」相關錯誤訊息的步驟,並且查看記錄檔看看是否還有錯誤訊息。

總結我們只需要更新官方提供 SAS 平台至最新版本,以及加入相關安全協定和加密演算法參數就能夠解決 SAS 9 平台的「javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure」相關錯誤訊息。

相關資源

⬅️ Go back