本頁面為您介紹 SSL 鏈路加密的操作步驟。
背景資訊
為了提高鏈路安全性,OceanBase 資料庫連接支援開啟 SSL(Secure Sockets Layer)加密,通過在傳輸層對網路連接進行加密,提升通訊資料的安全性。在開啟 SSL 串連之後,支援設定要求用戶端也必須使用 SSL 串連訪問。
SSL 鏈路加密開啟後暫不支援關閉,執行個體效能將有輕微下降(認證加解密需要消耗一定的計算資源),建議僅在有外網串連或者有傳輸加密需求的時候開啟執行個體 SSL 鏈路加密。
OceanBase V2.2.76 及以上版本支援 SSL 鏈路加密功能。
標準版(Key-Value)叢集暫不支援 SSL 鏈路加密功能。
SSL 鏈路加密功能對直連地址不生效。
TLS 版本說明
TLS(Transport Layer Security)是一種被廣泛採用的傳輸層安全性協議,用來保障互連網通訊的私密性和資料安全性。TLS 協議有很多版本,JDK 與 MySQL Connector/J 組合的不同版本對 TLS 的支援情況如下:
JDK 版本 | MySQL Connector/J 版本 | TLSv1.0 | TLSv1.1 | TLSv1.2 | TLSv1.3 | |
JDK 8 | < 8u291 | - | 支援 | 支援 | 支援 | 不支援 |
8u291 ~ 8u333 | - | 不支援 | 不支援 | 支援 | 不支援 | |
>= 8u341 | < 8.0.19 | 不支援 | 不支援 | 支援 | 不支援 | |
>= 8.0.19 | 不支援 | 不支援 | 支援 | 支援 | ||
JDK 9 | - | - | 支援 | 支援 | 支援 | 不支援 |
JDK 11 | < 11.0.11 | < 8.0.19 | 支援 | 支援 | 支援 | 不支援 |
>= 8.0.19 | 支援 | 支援 | 支援 | 支援 | ||
>= 11.0.11 | < 8.0.19 | 不支援 | 不支援 | 支援 | 不支援 | |
>= 8.0.19 | 不支援 | 不支援 | 支援 | 支援 | ||
操作步驟
登入 OceanBase 管理主控台。
在左側導覽列單擊 執行個體列表。
在執行個體列表中找到目的地組群執行個體,單擊叢集執行個體名稱,進入 叢集執行個體工作台 頁面。
在左側導覽列單擊 安全設定。
單擊 SSL 鏈路加密 頁簽,您可進行如下操作。
單擊 SSL 鏈路加密 開關,開啟 SSL 鏈路加密,開啟過程大概需要 3~5 分鐘。SSL 鏈路加密成功開啟後,有些版本可選擇是否開啟 強制 SSL 串連。如果頁面不顯示強制 SSL 連結,說明目前的版本不支援強制開啟。
說明開啟強制 SSL 串連,會屏蔽非 SSL 串連,歷史建立的非 SSL 串連將失效,請注意切換串連方式。
單擊 下載 CA 憑證,下載認證。
下載的檔案為壓縮包,包含如下三個檔案:
p7b 檔案:用於 Windows 系統中匯入 CA 憑證。
PEM 檔案:用於其他系統或應用中匯入 CA 憑證。
JKS 檔案:Java 中的 truststore 憑證存放區檔案,密碼統一為 OceanBase,用於 Java 程式中匯入 CA 憑證鏈。
說明在 Java 中使用 JKS 認證檔案時,jdk7 和 jdk8 需要修改預設的 jdk 安全配置,在應用程式所在主機的
jre/lib/security/java.security檔案中,修改如下兩項配置:jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224 jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024若不修改 jdk 安全配置,會報如下錯誤。其他類似報錯,一般也都由 Java 安全配置導致。
javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints單擊 更新有效期間,可以重新整理 SSL 憑證有效期間。

單擊 自動更新 SSL 憑證有效期間 開關,開啟後,認證將在到期前 7 天自動更新,每次更新有效時間長度為 360 天。

常見問題
當 Java 程式串連報錯 javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)時,您可以通過以下任一方式解決該問題:
在 JDBC 串連串 url 參數中指定 TLS 版本,例如指定 enabledTLSProtocols=TLSv1.2。
降低使用的 JDK 版本至 1.8.0_291 以下。