為了提高鏈路安全性,您可以啟用SSL(Secure Sockets Layer)加密,並安裝SSL CA認證到需要的應用服務。SSL在傳輸層對網路連接進行加密,能提升通訊資料的安全性和完整性,但會同時增加網路連接回應時間。
背景資訊
SSL是Netscape公司所提出的安全保密協議,在瀏覽器和Web伺服器之間構造安全通道來進行資料轉送,採用RC4、MD5、RSA等密碼編譯演算法實現安全通訊。國際互連網工程工作群組(IETF)對SSL 3.0進行了標準化,標準化後更名為安全傳輸層協議(TLS)。由於SSL這一術語更為常用,因此本文所述的SSL加密實際是指TLS加密。
注意事項
開啟SSL加密和下載認證
登入PolarDB控制台。
在左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側功能表列中單擊 。
在SSL配置頁簽,單擊SSL狀態右側滑塊,開啟SSL加密。
說明PolarDB MySQL版8.0、5.7和5.6版本支援為主地址、叢集地址和自訂地址配置SSL。
在設定SSL對話方塊中,選擇需要開通SSL加密的鏈路,單擊確定。
說明您可以根據需要,選擇加密內網鏈路或者外網鏈路,但只可以加密一條鏈路。
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 CA認證
開通SSL加密後,應用或者用戶端串連PolarDB前,建議配置SSL CA認證。本文以MySQL Workbench和Navicat為例,介紹SSL CA認證的配置方法。其它應用或者用戶端請參見對應產品的使用說明。
MySQL Workbench配置方法
開啟MySQL Workbench。
選擇 。
啟用Use SSL,並匯入SSL CA認證。
Navicat配置方法
開啟Navicat。
在目標資料庫上單擊滑鼠右鍵,選擇編輯串連 。
選擇SSL頁簽,選擇.pem格式CA認證的路徑。參照下圖進行設定。
單擊確定。
說明如果報
Connection with same connection name already exists in the project.
錯誤,是由於之前的會話未斷開,請關閉Navicat重新開啟。雙擊目標資料庫測試能否正常串連。
更新認證有效期間
如果您修改了SSL串連地址或認證有效期間即將到期,您需要手動更新認證有效期間,以下內容將為您介紹如何更新認證有效期間。
更新認證有效期間操作將會重啟叢集,重啟前請做好業務安排,謹慎操作。
登入PolarDB控制台。
在左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側功能表列中單擊 。
在SSL配置頁簽中單擊更新有效期間。
在彈出的對話方塊中,單擊確定。
更新有效期間後,重新下載和配置認證。
說明下載認證請參見開啟SSL加密和下載認證第七步。
配置認證請參見配置SSL CA認證。
開啟認證自動輪換
開啟認證自動輪轉後,在認證即將到期的10天內,PolarDB會在叢集的可維護時間視窗內自動更新認證。
自動更新認證將會重啟叢集,請您謹慎選擇。
在SSL配置頁簽中,單擊進階選項。
在進階選項對話方塊中,選擇開啟認證自動輪轉,並單擊確定。
關閉SSL加密
關閉SSL加密會重啟叢集,建議您在業務低峰期操作。
SSL加密關閉後,資料庫訪問效能會有一定程度的提升,但安全性上有削弱,因此在非安全環境下不建議關閉SSL加密。
登入PolarDB控制台。
在左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側功能表列中單擊 。
在SSL配置頁簽中,單擊SSL狀態右側滑塊來關閉SSL加密。
在彈出的對話方塊中,單擊確定。
查看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設定。 | |
調用ModifyDBClusterSSL介面設定PolarDB叢集SSL加密的開通、關閉或更新CA認證。 |