乱伦亚洲av动漫yw_综合亚洲乱中文字幕_亚洲色欧美国产综合_婷婷五月天成人网_福利国语自产拍在线视频中文_毛片一级片电影在线观看视频_4480YY私人影院免费无码_人妻无码精品二专区

×
技術社區 >  技術博客 >  OceanBase 全鏈路 SSL 加密訪問配置指南

OceanBase 全鏈路 SSL 加密訪問配置指南

一、功能介紹

SSL(Secure Socket Layer)是基于 TCP/IP 傳輸通信協議實現的安全協議,采用公開密鑰技術,廣泛支持各類網絡,提供三種基礎安全服務。

為全面提升數據安全,OceanBase 全數據鏈路(Observer、Obproxy、JDBC 驅動層)均已全面支持 SSL 加密訪問。

二、相關參數

參數名稱 默認值 描述
disableSslHostnameVerification false 使用 SSL 時,驅動會校驗服務器證書中的主機名(備用名稱/證書 CN),防范中間人攻擊;該參數可關閉校驗,需配合 trustServerCertificate=true 使用
useSSL false 強制啟用 SSL 連接
trustStore null 信任庫文件路徑,等價于 Java 屬性 javax.net.ssl.trustStore
trustStorePassword 信任庫密碼,等價于 Java 屬性 javax.net.ssl.trustStorePassword

三、配置開啟 SSL

使用 SSL 功能需完成全鏈路 SSL 開啟 + 證書生成 兩步核心操作。

(一)證書生成

1. CA 證書生成

  1. # 1. 生成 RSA 私鑰
  2. openssl genrsa 2048 > cakey.pem
  3. # 2. 創建 CA 證書
  4. openssl req -new -x509 -nodes -days 3600 -key cakey.pem -out ca.pem

2. 服務端證書生成

  1. # 1. 生成私鑰與證書請求文件
  2. openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
  3. # 2. 寫入 RSA
  4. openssl rsa -in server-key.pem -out server-key.pem
  5. # 3. CA 簽名(必須填寫 common name:observer)
  6. openssl x509 -req -in server-req.pem -days 3600 -CA ca.pem -CAkey cakey.pem -set_serial 01 -out server-cert.pem

3. 客戶端證書生成

  1. # 1. 生成私鑰與證書請求文件
  2. openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem
  3. # 2. 寫入 RSA
  4. openssl rsa -in client-key.pem -out client-key.pem
  5. # 3. CA 簽名(必須填寫 common name:obclient)
  6. openssl x509 -req -in client-req.pem -days 3600 -CA ca.pem -CAkey cakey.pem -set_serial 01 -out client-cert.pem

4. Proxy 證書生成

  1. # 1. 生成私鑰與證書請求文件
  2. openssl req -newkey rsa:2048 -days 3600 -nodes -keyout proxy-key.pem -out proxy-req.pem
  3. # 2. 寫入 RSA
  4. openssl rsa -in proxy-key.pem -out proxy-key.pem
  5. # 3. CA 簽名
  6. openssl x509 -req -in proxy-req.pem -days 3600 -CA ca.pem -CAkey cakey.pem -set_serial 01 -out proxy-cert.pem

(二)Observer 開啟 SSL 并驗證

1. Observer 配置

  1. # 1. 創建證書存放目錄
  2. mkdir /home/admin/oceanbase/wallet
  3. # 2. 拷貝證書文件至目錄
  4. cp ca.pem server-cert.pem server-key.pem /home/admin/oceanbase/wallet/
-- 3. 關閉 SSL(初始狀態)
alter system set ssl_client_authentication=FALSE;

-- 4. 設置 kms_info 為 file
alter system set ssl_external_kms_info = '{"ssl_mode":"file"}';

-- 5. 開啟客戶端 SSL 認證
alter system set ssl_client_authentication=TRUE;

-- 6. 設置 SSL 白名單(允許 obclient、obproxy 連接)
alter system set ob_ssl_invited_common_names='obclient,obproxy' tenant=all;

2. 驗證

  1. 使用 obclient 連接 Observer
  2. 執行 SQL 查看 SSL 連接:
select * from oceanbase.__all_virtual_processlist where ssl_cipher is not null;

(三)Obproxy 開啟 SSL 并驗證

1. Obproxy 配置

  1. # 1. 放置證書至 wallet 目錄
  2. cp ca.pem proxy-cert.pem proxy-key.pem /home/xuping.lz/ob9.proxy0/wallet/
-- 2. 連接 Obproxy(使用 proxysys 賬戶)
mysql -h 192.168.0.XX -P 1XX3 -u root@proxysys -paaAA11__

-- 3. 配置證書路徑
update proxyconfig.security_config set CONFIG_VAL= '{"sourceType" : "FILE", "CA" : "/home/xuping.lz/ob9.proxy0/wallet/ca.pem", "publicKey" : "/home/xuping.lz/ob9.proxy0/wallet/proxy-cert.pem", "privateKey" : "/home/xuping.lz/ob9.proxy0/wallet/proxy-key.pem"}' where APP_NAME = 'obprox ' and VERSION = '1';

-- 4. 開啟客戶端/服務端 SSL
alter proxyconfig set enable_client_ssl=true;
alter proxyconfig set enable_server_ssl=true;

2. 驗證

-- 查看證書配置
select CONFIG_VAL from proxyconfig.security_config where APP_NAME = 'obproxy';

-- 查看 SSL 相關配置
show proxyconfig like '%ssl%';

(四)創建 SSL 專用用戶

-- 創建必須使用 SSL 連接的用戶
create user testssl identified by '123456' require ssl;

-- 授權
grant all on *.* to testssl@'%';

四、JDBC SSL 配置

(一)證書庫轉換

1. 導入服務器 CA 證書到信任庫

  1. sudo /opt/taobao/java/jre/bin/keytool -import -alias mysqlServerCACert -file /home/xuping.lz/wallet/ca.pem -keystore test.jks
  2. # 輸入密碼:123456

2. 客戶端證書捆綁為 PKCS12 文件

  1. openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -out client.p12 -name clientalias -CAfile ca-cert.pem
  2. # 輸入密碼:123456

3. PKCS12 導入密鑰庫

  1. keytool -importkeystore -deststorepass 123456 -destkeystore test.jks -srckeystore client.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias clientalias

(二)JDBC 連接使用 SSL

1. HTTP 服務器遠程加載 JKS 文件

  1. String url = "jdbc:oceanbase://192.168.0.XX:1xxx1/sys?user=testssl&password=123456&pool=false&useSSL=true&disableSslHostnameVerification=true&trustStore=http://100.81.152.xx:7xx7/wallet/truststore.jks&trustStorePassword=123456";

2. 本地使用 JKS 文件

  1. // 方式1:連接串配置
  2. String url = "jdbc:oceanbase://192.168.0.XX:1xxx1/sys?user=testssl&password=123456&pool=false&useSSL=true&disableSslHostnameVerification=true";
  3. // 方式2:系統屬性配置
  4. System.setProperty("javax.net.ssl.trustStore", "/Users/lize/Downloads/test.jks");
  5. System.setProperty("javax.net.ssl.trustStorePassword", "123456");
  6. Class.forName("com.oceanbase.jdbc.Driver");
  7. Connection connection = DriverManager.getConnection(url);

總結

  1. 全鏈路 SSL 需先生成 CA、服務端、客戶端、Proxy 四類證書,且證書簽名時需嚴格指定對應 common name
  2. Observer 和 Obproxy 需分別配置證書路徑并開啟 SSL 開關,配置白名單限制連接來源;
  3. JDBC 需完成證書格式轉換,支持遠程 HTTP本地文件兩種方式加載信任庫,實現 SSL 加密連接。

精選推薦