RDS MySQL支援對資料庫代理串連地址進行SSL(Secure Sockets Layer)加密,您可以啟用SSL加密,並安裝SSL CA認證到需要的應用服務,以提高RDS MySQL的鏈路安全性。本文介紹如何設定代理SSL加密。
SSL在傳輸層對網路連接進行加密,能提升通訊資料的安全性和完整性,但會同時增加網路連接回應時間。
前提條件
執行個體版本如下:
MySQL 8.0高可用系列(核心小版本20200831或以上)
MySQL 8.0叢集系列
MySQL 5.7叢集系列
MySQL 5.7高可用系列(核心小版本20200831或以上)
MySQL 5.6高可用系列(核心小版本20200831或以上)
說明如果執行個體有隻讀執行個體,唯讀執行個體也需要滿足核心小版本要求。
資料庫代理核心小版本為1.12.8或以上。
需要開通SSL加密的代理串連地址總長度不能超過64個字元。
注意事項
每個代理終端中僅支援對一個代理串連地址設定SSL加密。
開通SSL加密、關閉SSL加密、修改SSL加密、更新認證有效期間都會重啟代理執行個體,請謹慎操作。
開通SSL加密
開通SSL加密會重啟執行個體,請謹慎操作。
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列,單擊資料庫代理。
在串連資訊地區,將滑鼠移至上方在目標代理串連地址ID,在彈出的對話方塊中的SSL配置資訊地區,單擊SSL認證資訊右側的開通。
在彈出的對話方塊中,選擇需要加密的地址,然後單擊確定。
SSL狀態變為已開通後,單擊SSL認證資訊右側的下載CA認證。
說明下載的檔案為壓縮包,包含如下三個檔案:
PEM檔案:適用於絕大部分情境。
JKS檔案:PEM格式CA認證通常需要匯入到truststore,即轉換為JKS檔案才能在Java中使用。您可以在Java程式中使用此JKS檔案,密碼為apsaradb。
p7b檔案:適用於少數要求PKCS #7認證檔案的Windows應用。
配置SSL 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 CA認證
開通SSL加密並下載CA認證後,可以配置SSL CA認證。具體操作,請參見配置CA認證。
修改SSL加密地址
修改SSL加密地址會更新認證有效期間,同時重啟執行個體,請謹慎操作。
- 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列,單擊資料庫代理。
在串連資訊地區,將滑鼠移至上方在目標代理串連地址ID,在彈出的對話方塊中的SSL配置資訊地區,單擊受保護地址下方的修改受保護地址。
選擇需要加密的地址,然後單擊確定。
更新認證有效期間
更新認證有效期間會重啟執行個體,請謹慎操作。
- 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列,單擊資料庫代理。
在串連資訊地區,將滑鼠移至上方在目標代理串連地址ID,在彈出的對話方塊中的SSL配置資訊地區,單擊SSL認證資訊右側的更新有效期間,在彈出的對話方塊中單擊確定。
關閉SSL加密
關閉SSL加密會重啟執行個體,請謹慎操作。
- 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列,單擊資料庫代理。
在串連資訊地區,將滑鼠移至上方在目標代理串連地址ID,在彈出的對話方塊中的SSL配置資訊地區,單擊SSL認證資訊右側的關閉,在彈出的對話方塊中單擊確定。
相關API
API | 描述 |
設定資料庫代理串連地址SSL加密。 | |
查詢資料庫代理串連地址SSL加密資訊。 |
附錄
通過SSL串連資料庫範例程式碼
請參見通過SSL串連資料庫範例程式碼。
SSL加密常見問題
請參見SSL加密常見問題。