PolarDB PostgreSQL版支援設定SSL鏈路加密,對網路連接進行加密,保證傳輸鏈路的安全。本文介紹在新版管理頁面,針對主地址或叢集地址開啟SSL鏈路加密功能的入門配置。如果您的執行個體在安全管理 > SSL配置頁面不支援單獨針對主地址或叢集地址開啟或關閉SSL功能,請參考設定SSL加密進行操作。
背景資訊
SSL(Secure Sockets Layer)指安全通訊端協議,是為了安全通訊、資料安全性專門設計的安全性通訊協定,SSL 3.0之後更名為TLS(Transport Layer Security)。本文以配置雲端認證為例,指導您快速配置SSL鏈路加密。
PolarDB PostgreSQL版的資料庫代理支援的TLS版本為 1.0、1.1、1.2 和 1.3。
PolarDB PostgreSQL版叢集支援的SSL鏈路加密配置及功能對比如下:
對比項 | 配置雲端認證 | 配置自訂認證 | 配置用戶端CA認證 |
擷取方式 | 由阿里雲頒發。 | 由認證認證機構頒發或自我簽署憑證頒發。 | 由自我簽署憑證頒發。 |
認證有效期間 | 365天。 | 由您自訂。 | 由您自訂。 |
保護的串連地址數 | 1個或多個。 | 1個或多個。 | 不影響保護的串連地址數,取決於配合使用的雲端認證或自訂認證。 |
認證作用 | 開啟SSL鏈路加密,用戶端驗證服務端真偽。 | 開啟SSL鏈路加密,用戶端驗證服務端真偽。 | 服務端驗證用戶端真偽。 |
對於雲端認證、自訂認證和用戶端CA認證的配置需要滿足版本約束才可以使用,主地址和叢集地址遵循不同的約束條件。對於不滿足條件的版本,僅支援雲端認證模式。
對於滿足條件的新版本:配置雲端認證或自訂認證為必選配置,用於開啟SSL鏈路加密。
對於滿足條件的新版本:配置用戶端CA認證為可選配置,用於服務端驗證用戶端真偽。
前提條件
叢集為PolarDB PostgreSQL版 14、15或以上版本,其中 PolarDB PostgreSQL版14要求核心版本大於等於14.10.21.0版本,主地址可允許配置自訂認證、用戶端CA認證等;低版本僅支援雲端認證模式。
叢集的資料庫代理版本要求至少為2.3.51版本,叢集地址和自訂地址才允許配置自訂認證、用戶端CA認證等;低版本僅支援雲端認證模式。
已下載pgAdmin 4 用戶端。
注意事項
SSL的雲端認證有效期間為1年,請及時更新認證有效期間並重新下載和配置CA認證,否則使用加密串連的用戶端程式將無法正常串連。
由於SSL加密的固有缺陷,啟用SSL加密會顯著增加CPU使用率,建議您僅在外網鏈路有加密需求的時候啟用SSL加密。內網鏈路相對較安全,一般無需對鏈路加密。
開啟SSL鏈路加密後,已有串連需要斷開重連,加密才會生效。
開啟雲端認證、更新認證有效期間、更改雲端認證保護的串連地址或關閉SSL鏈路加密,會存在串連閃斷,請在業務低峰期操作。
步驟一:使用雲端認證開啟SSL鏈路加密
登入PolarDB管理主控台。
在頁面左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側功能表列中單擊配置與管理 > 安全管理。
在SSL配置頁簽,選擇主地址或者任意叢集地址,點擊SSL狀態右側滑塊或者點擊設定資料庫認證按鈕,開啟SSL加密。
在設定資料庫認證對話方塊,選擇雲端認證,並選擇要保護的串連地址。
單擊確定,進入開啟流程。開啟後,請耐心等待叢集到運行狀態進行後續操作。

步驟二:下載CA認證
開啟雲端認證後,PolarDB PostgreSQL版資料庫提供資料庫CA認證供您下載。當您通過用戶端遠端連線PolarDB PostgreSQL版資料庫時,使用資料庫CA認證即可對資料庫真偽進行校正。
在SSL 配置頁簽,單擊雲端認證右側的下載認證,即可下載認證。

解壓下載的CA認證。下載的檔案為壓縮包,包含如下三個檔案:
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
步驟三:用戶端串連資料庫
本樣本中以pgAdmin用戶端通過SSL串連PolarDB PostgreSQL版資料庫為例。
PolarDB PostgreSQL版資料庫還支援通過psql命令列終端和JDBC等多種方式SSL遠端連線,更多資訊,請參見SSL串連PolarDB PostgreSQL版PolarDB PostgreSQL版(相容Oracle)資料庫。
啟動pgAdmin 4用戶端。
說明高版本用戶端首次登入需要設定Master Password用於保護儲存的密碼和其他憑據。
按右鍵Servers,選擇Register > Server...。

在General頁簽設定串連名稱。

選擇Connection標籤頁,輸入要串連的叢集資訊。

參數
說明
Host name/address
PolarDB PostgreSQL版叢集已開啟SSL串連的主地址或叢集地址及其對應的連接埠:
若通過內網串連,需輸入集群的內網地址和內網連接埠。
若使用外網串連,需輸入集群的外網地址和外網連接埠。
Port
Username
PolarDB PostgreSQL版叢集的帳號和密碼。
Password
選擇Parameters標籤頁,添加SSL認證方式相關參數並配置認證。
參數
說明
SSL mode
為了使用SSL安全連線,請配置Require、Verify-CA或Verify-Full串連方式,參數含義如下:
Require:只對資料鏈路加密,並不驗證資料庫伺服器的真實性。
Verify-CA:加密資料鏈路,同時驗證資料庫的真實性。
Verify-Full:加密資料鏈路,驗證資料庫的真實性,同時比對認證內的CN或DNS與串連時配置的Host name/address的一致性。
Root certificate
當SSL mode取值為Verify-CA或Verify-Full時,需要配置此參數,表示資料庫CA憑證路徑。
說明本樣本中,從SSL頁面下載的CA認證解壓路徑為 D:\CA\aliyunCA\,您可以將認證解壓到您本地的任意位置。
pgAdmin用戶端中使用的資料庫CA認證為PEM檔案。
單擊Save。
若串連資訊無誤,會出現如下介面,則表示串連成功。
重要postgres是PolarDB PostgreSQL版叢集預設的系統資料庫,請勿在該資料庫中進行任何操作。
步驟四:(可選)更新雲端認證有效期間
如果您的認證有效期間即將到期,需要更新認證有效期間,可按照以下步驟更新認證有效期間。
登入PolarDB管理主控台。
在頁面左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側功能表列中單擊配置與管理 > 安全管理。
在SSL配置頁簽,選擇需要更新的主地址或叢集地址,單擊更新有效期間按鈕。
在彈出的對話方塊中,單擊確定。
說明更新有效期間操作將會重啟叢集,重啟前請做好業務安排,謹慎操作。
更新有效期間後,請重新下載和配置認證。
步驟五:(可選)關閉SSL鏈路加密
關閉SSL加密可能會重啟叢集,串連閃斷,請謹慎操作。
如果您需要關閉SSL鏈路加密,可以按照如下步驟進行操作。
登入PolarDB管理主控台。
在頁面左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側功能表列中單擊配置與管理 > 安全管理。
在SSL配置頁簽,找到需要關閉的主地址或叢集地址,單擊SSL狀態右側滑塊。
