全部產品
Search
文件中心

Lindorm:MySQL 協議 SSL 加密使用指南

更新時間:Sep 24, 2026

本文介紹 Lindorm 寬表引擎 MySQL 協議 33060 連接埠的 SSL/TLS 加密鏈路使用方式。

版本要求

  • 寬表 >= 2.8.6.14 並且 SQL 版本 >= 2.9.7.16

適用範圍

本文說明 Lindorm 寬表引擎 MySQL 協議 33060 連接埠的 SSL/TLS 加密鏈路使用方式,覆蓋以下情境:

  • 用戶端只要求鏈路加密:使用 sslMode=REQUIRED。

  • 用戶端要求基於 CA 憑證校正服務端憑證鏈結:使用 sslMode=VERIFY_CA 並配置控制台下載的 CA 憑證。JDBC 用戶端需要使用 CA 憑證嚴格校正時,將 CA 憑證匯入 truststore 後串連。

控制台開通 SSL Data Encryption Service

前提條件

已開通 Lindorm 寬表引擎。

操作步驟

  1. 登入Lindorm管理主控台。

  2. 在頁面左上方,選擇執行個體所屬的地區。

  3. 在实例列表頁,單擊目標執行個體ID或者目標執行個體所在行操作列的管理。

  4. 在執行個體詳情頁左側導覽列,依次單擊宽表引擎 > 数据安全。

  5. 在数据链路SSL地區,在当前状态:地區進行開啟操作。

  6. 等待 SSL Data Encryption Service開通完成。頁面顯示以下資訊時,表示 SSL Data Encryption Service已開啟:

    • 当前状态::已开启

    • SSL证书有效期::頁面展示的認證到期時間,例如 2036-06-13 18:02:25

    • SSL证书有效性::有效

    • 頁面提供下 载 CA 证 书按鈕

說明

用戶端如果要使用 VERIFY_CA 嚴格校正,需要單擊下 载 CA 证 书擷取 CA 憑證檔案。

用戶端串連模式

只要求加密鏈路

若僅需保障用戶端到服務端的鏈路加密,使用 sslMode=REQUIRED。該模式會啟用 TLS 加密,但無需用戶端額外配置 CA 根憑證。

  • MySQL 命令樣本

    mysql --ssl-mode=REQUIRED \
      -h <host> \
      -P 33060 \
      -u <user> \
      -p \
      -D <database> \
      --get-server-public-key

    詳細使用方式可參見通過MySQL命令列串連並使用寬表引擎。

  • JDBC樣本

    String url = "jdbc:mysql://<host>:33060/<database>"
        + "?sslMode=REQUIRED"
        + "&allowPublicKeyRetrieval=true";
    Connection connection = DriverManager.getConnection(url, user, password);

    詳細使用方式可參見基於Java JDBC介面的應用開發。

嚴格校正憑證鏈結

如果用戶端需要確認服務端認證由可信 CA 簽發,使用 sslMode=VERIFY_CA,並通過 --ssl-ca 指定控制台下載的 CA 憑證。

mysql --ssl-mode=VERIFY_CA \
  --ssl-ca=/path/to/Lindorm-CA.crt \
  -h <host> \
  -P 33060 \
  -u <user> \
  -p \
  -D <database> \
  --get-server-public-key

樣本查詢:

mysql --ssl-mode=VERIFY_CA \
  --ssl-ca=/path/to/Lindorm-CA.crt \
  -h <host> -P 33060 -u <user> -p -D <database> \
  --get-server-public-key \
  -e "SELECT 1 AS ok"
說明

請將樣本中的/path/to/Lindorm-CA.crt 替換為 Lindorm-CA.crt 檔案在您本地環境中的實際絕對路徑。

返回 ok = 1 表示用戶端已基於 CA 憑證完成 SSL 握手和查詢。

VERIFY_IDENTITY 模式說明

VERIFY_IDENTITY 會在 VERIFY_CA 的基礎上繼續校正串連網域名稱是否匹配服務端認證的 SAN/CN。因此,使用該模式的前提是:用戶端串連時使用的 host 必須與認證中聲明的網域名稱或 IP 完全一致。

JDBC 嚴格 CA 校正

MySQL Connector/J 通用做法是先把控制台下載的 CA 憑證匯入 Java truststore,再在 JDBC URL 中配置 truststore。

產生 truststore

keytool -importcert \
  -alias lindorm-ca \
  -file /path/to/Lindorm-CA.crt \
  -keystore /path/to/lindorm-ca.p12 \
  -storetype PKCS12 \
  -storepass changeit \
  -noprompt
說明
  • 請將樣本中的 /path/to/Lindorm-CA.crt 替換為該認證檔案在您本地環境中的實際絕對路徑。

  • 請將樣本中的 /path/to/lindorm-ca.p12 替換為您計劃在本地環境中儲存該檔案的實際絕對路徑。

JDBC URL

String url = "jdbc:mysql://<host>:33060/<database>"
    + "?sslMode=VERIFY_CA"
    + "&allowPublicKeyRetrieval=true"
    + "&trustCertificateKeyStoreUrl=file:/path/to/lindorm-ca.p12"
    + "&trustCertificateKeyStorePassword=changeit"
    + "&trustCertificateKeyStoreType=PKCS12";
Connection connection = DriverManager.getConnection(url, user, password);

注意:trustCertificateKeyStoreUrl 使用的是 truststore 檔案路徑,不是直接填寫服務端憑證路徑。控制台下載的 CA 憑證可以先匯入 PKCS12 或 JKS truststore 後再給 JDBC 使用。

常見問題

  • Q:SSL 加密是否控制台開通以後就能夠生效

    A:SSL 加密是否開通是服務端和用戶端協商決定的,需要在用戶端配置 sslMode 來協商決定。

  • Q:SSL 加密是否有效能損耗

    A:開通 SSL 加密會有效能損耗,對於效能敏感情境,建議禁用 SSL 加密,可以在串連串中設定 sslMode=DISABLED 來禁用 SSL 加密。

  • Q:只配置憑證路徑是否會自動開啟 SSL

    A:不會。服務端必須開啟對應 SSL 開關後,MySQL 協議 SSL 鏈路才會啟用。

  • Q:REQUIRED 和 VERIFY_CA 有什麼區別

    A:REQUIRED 只要求建立 TLS 加密鏈路,不要求用戶端校正服務端憑證鏈結。

    VERIFY_CA 除了建立 TLS 加密鏈路,還要求用戶端信任簽發服務端認證的 CA 根憑證。

  • Q:--ssl-ca 應該填寫哪個認證

    A:填寫控制台 下載 CA 憑證 得到的 CA 根憑證。不要把服務端認證 server.cert 直接當作 --ssl-ca 使用。

  • Q:JDBC 可以直接使用 crt 檔案嗎

    A:不同 MySQL Connector/J 版本對 PEM 認證參數的支援存在差異。通用做法是將控制台下載的 CA 憑證匯入 PKCS12 或 JKS truststore,然後通過 trustCertificateKeyStoreUrl、trustCertificateKeyStorePassword、trustCertificateKeyStoreType 配置給 JDBC。