全部產品
Search
文件中心

PolarDB:設定SSL加密

更新時間:Jul 06, 2024

為了提高鏈路安全性,您可以啟用SSL(Secure Sockets Layer)加密,並安裝SSL CA認證到需要的應用服務。SSL在傳輸層對網路連接進行加密,能提升通訊資料的安全性和完整性,但會同時增加網路連接回應時間。

背景資訊

SSL是Netscape公司所提出的安全保密協議,在瀏覽器和Web伺服器之間構造安全通道來進行資料轉送,採用RC4、MD5、RSA等密碼編譯演算法實現安全通訊。國際互連網工程工作群組(IETF)對SSL 3.0進行了標準化,標準化後更名為安全傳輸層協議(TLS)。由於SSL這一術語更為常用,因此本文所述的SSL加密實際是指TLS加密。

注意事項

  • SSL的認證有效期間為1年,請及時更新認證有效期間並重新下載和配置CA認證,否則使用加密串連的用戶端程式將無法正常串連。更新認證有效期間的詳細說明,請參見更新認證有效期間

  • 由於SSL加密的固有缺陷,啟用SSL加密會顯著增加CPU使用率,建議您僅在外網鏈路有加密需求的時候啟用SSL加密。內網鏈路相對較安全,一般無需對鏈路加密。

  • 修改受保護地址後,SSL認證會自動更新,同時重啟您的資料庫執行個體,請謹慎操作。

  • 更新認證有效期間操作將會重啟叢集,重啟前請做好業務安排,謹慎操作。

  • 開啟SSL加密的PolarDB串連地址需要少於64個字元,如何修改串連地址請參見設定資料庫代理

開啟SSL加密和下載認證

  1. 登入PolarDB控制台

  2. 在左上方,選擇叢集所在地區。

  3. 找到目的地組群,單擊叢集ID。

  4. 在左側功能表列中單擊配置與管理 > 安全管理

  5. SSL配置頁簽,單擊SSL狀態右側滑塊,開啟SSL加密。

    開啟SSL加密

    說明

    PolarDB MySQL版8.0、5.7和5.6版本支援為主地址、叢集地址和自訂地址配置SSL。

  6. 設定SSL對話方塊中,選擇需要開通SSL加密的鏈路,單擊確定

    說明

    您可以根據需要,選擇加密內網鏈路或者外網鏈路,但只可以加密一條鏈路。

    設定SSL加密

  7. SSL狀態變為已開通後,單擊下載認證

    下載認證

    下載的檔案為壓縮包,包含如下三個檔案:

    • .p7b格式檔案:用於Windows系統中匯入CA認證。

    • .pem格式檔案:用於其他系統或應用中匯入CA認證。

    • .jks格式檔案:Java中的truststore憑證存放區檔案,密碼統一為apsaradb,用於Java程式中匯入CA憑證鏈結。

      說明

      在Java中使用JKS認證檔案時,jdk7和jdk8需要修改預設的jdk安全配置,在串連PolarDB資料庫的伺服器的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進行修改。設定SSL

    重要

    修改受保護地址後,SSL認證會自動更新,同時重啟您的資料庫執行個體,請謹慎操作。

配置SSL CA認證

開通SSL加密後,應用或者用戶端串連PolarDB前,建議配置SSL CA認證。本文以MySQL Workbench和Navicat為例,介紹SSL CA認證的配置方法。其它應用或者用戶端請參見對應產品的使用說明。

MySQL Workbench配置方法

  1. 開啟MySQL Workbench。

  2. 選擇Database > Manage Connections

  3. 啟用Use SSL,並匯入SSL CA認證。

Navicat配置方法

  1. 開啟Navicat。

  2. 在目標資料庫上單擊滑鼠右鍵,選擇編輯串連

    2

  3. 選擇SSL頁簽,選擇.pem格式CA認證的路徑。參照下圖進行設定。

    3

  4. 單擊確定

    說明

    如果報Connection with same connection name already exists in the project.錯誤,是由於之前的會話未斷開,請關閉Navicat重新開啟。

  5. 雙擊目標資料庫測試能否正常串連。

    4

更新認證有效期間

如果您修改了SSL串連地址或認證有效期間即將到期,您需要手動更新認證有效期間,以下內容將為您介紹如何更新認證有效期間。

說明

更新認證有效期間操作將會重啟叢集,重啟前請做好業務安排,謹慎操作。

  1. 登入PolarDB控制台

  2. 在左上方,選擇叢集所在地區。

  3. 找到目的地組群,單擊叢集ID。

  4. 在左側功能表列中單擊配置與管理 > 安全管理

  5. SSL配置頁簽中單擊更新有效期間

    更新認證有效期間

  6. 在彈出的對話方塊中,單擊確定

  7. 更新有效期間後,重新下載和配置認證。

    說明

開啟認證自動輪換

開啟認證自動輪轉後,在認證即將到期的10天內,PolarDB會在叢集的可維護時間視窗內自動更新認證。

說明

自動更新認證將會重啟叢集,請您謹慎選擇。

  1. SSL配置頁簽中,單擊進階選項認證自動輪換

  2. 進階選項對話方塊中,選擇開啟認證自動輪轉,並單擊確定認證自動輪換

關閉SSL加密

說明
  • 關閉SSL加密會重啟叢集,建議您在業務低峰期操作。

  • SSL加密關閉後,資料庫訪問效能會有一定程度的提升,但安全性上有削弱,因此在非安全環境下不建議關閉SSL加密。

  1. 登入PolarDB控制台

  2. 在左上方,選擇叢集所在地區。

  3. 找到目的地組群,單擊叢集ID。

  4. 在左側功能表列中單擊配置與管理 > 安全管理

  5. SSL配置頁簽中,單擊SSL狀態右側滑塊來關閉SSL加密。

  6. 在彈出的對話方塊中,單擊確定

查看SSL加密套件

SSL協議有很多版本,PolarDB目前支援TLSv1.2及以上的版本。在SSL握手期間,用戶端會和PolarDB服務端交換協商資訊,這些資訊包括TLS版本、加密套件和工作階段金鑰等。詳細的加密套件列表可以在OpenSSL官網進行查看。

成功建立SSL串連後,您可以執行以下SQL語句查看該串連使用的SSL加密套件:

SHOW STATUS LIKE 'ssl_cipher';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| Ssl_cipher    | AES128-GCM-SHA256 |
+---------------+-------------------+

如果串連未加密,查詢返回的變數為空白值。

相關API

API

描述

DescribeDBClusterSSL - 查詢PolarDB叢集SSL設定

調用DescribeDBClusterSSL介面查詢PolarDB叢集SSL設定。

ModifyDBClusterSSL - 設定叢集SSL

調用ModifyDBClusterSSL介面設定PolarDB叢集SSL加密的開通、關閉或更新CA認證。