PolarDB PostgreSQL版在給主地址或叢集地址配置SSL鏈路加密時,對於合格版本,不僅支援阿里雲提供的雲端認證,還支援使用自訂認證。本文介紹通過自訂認證配置SSL鏈路加密功能的具體操作。
前提條件
叢集為PolarDB PostgreSQL版14、15或以上版本,其中 PolarDB PostgreSQL版14要求核心版本大於等於14.10.21.0版本,主地址可允許配置自訂認證、用戶端CA認證等。
叢集的資料庫代理版本要求至少為2.3.51版本,叢集地址和自訂地址才允許配置自訂認證、用戶端CA認證等。
已安裝OpenSSL工具。
說明如果您使用Linux系統,系統會內建OpenSSL工具,無需安裝。
如果您使用Windows系統,請擷取OpenSSL 軟體包並安裝。
注意事項
開啟SSL鏈路加密後,會造成CPU使用率上升、讀寫時延增長。
開啟SSL鏈路加密後,已有串連需要斷開重連,加密才會生效。
配置自訂認證、更改自訂認證內容或關閉SSL鏈路加密,會存在串連閃斷,請在業務低峰期操作。
步驟一:擷取自訂認證
產生伺服器憑證私密金鑰或自我簽署憑證私密金鑰時,請勿使用密碼加密,否則將無法啟用 SSL 鏈路加密。
本文以CentOS系統配置為例,如果您使用Windows作業系統,操作步驟中的openssl命令與CentOS系統中的openssl命令配置相同,cp命令請替換為手動複製,vim命令請替換為手動編輯檔案。
建立自我簽署憑證(ca.crt)和自我簽署憑證私密金鑰(ca.key)。
openssl req -new -x509 -days 3650 -nodes -out ca.crt -keyout ca.key -subj "/CN=root-ca"產生伺服器憑證請求檔案(server.csr)和伺服器憑證私密金鑰(server.key)。自訂認證支援對您想要保護的主地址或者任意叢集地址中的一個串連地址或多個串連地址進行保護。您可以根據需要選擇以下兩種配置產生伺服器憑證請求檔案。
如果您需要保護一個串連地址,請配置如下命令。
openssl req -new -nodes -text -out server.csr -keyout server.key -subj "/CN=pe-xxx.rwlb.rds.aliyuncs.com"說明本樣本中pe-xxx.rwlb.rds.aliyuncs.com僅用於舉例,請修改為需要保護的主地址或叢集地址對應的連結地址。
如果您需要保護多個串連地址,請配置如下命令。
拷貝openssl 設定檔,作為臨時使用。
cp /etc/pki/tls/openssl.cnf /tmp/openssl.cnf說明如果您使用Windows系統,openssl.cnf 檔案位於openssl安裝目錄\bin\cnf目錄下,可以將此檔案拷貝到任意位置。
使用如下命令編輯臨時拷貝出的openssl.cnf 檔案。
vim /tmp/openssl.cnf輸入i進入編輯模式,配置以下內容。
# 在[ req ]最後補充 req_extensions = v3_req # 新增[ v3_req ] [ v3_req ] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names # 新增[ alt_names ],其中DNS後配置需要保護的資料庫連接地址 [ alt_names ] DNS.1 = pc-bpxxxxx.pg.rds.aliyuncs.com DNS.2 = pc-bpxxxxx.pg.rds.aliyuncs.com使用
Esc退出編輯模式,輸入:wq儲存並退出。產生伺服器憑證請求檔案(server.csr)和伺服器憑證私密金鑰(server.key)。
openssl req -new -nodes -text -out server.csr -keyout server.key -config /tmp/openssl.cnf產生認證請求檔案(server.csr)的過程中,會提示配置以下參數,請根據實際情況配置。
參數
說明
樣本
Country Name
ISO國家代碼(兩位字元)
CN
State or Province Name
所在省份
ZheJiang
Locality Name
所在城市
HangZhou
Organization Name
公司名稱
Alibaba
Organizational Unit Name
部門名稱
Aliyun
Common Name
申請SSL認證的網域名稱,在openssl.cnf檔案中已配置,不需要輸入
-
Email Address
不需要輸入
-
A challenge password
不需要輸入
-
An optional company name
不需要輸入
-
產生伺服器憑證(server.crt)。
如果您需要保護一個串連地址,請配置如下命令。
openssl x509 -req -in server.csr -text -days 365 -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt如果您需要保護多個串連地址,請配置如下命令。
openssl x509 -req -in server.csr -text -days 365 -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -extensions v3_req -extfile /tmp/openssl.cnf
完成以上配置後,執行ls命令,查看已產生的檔案:
# ls
ca.crt ca.key ca.srl server.crt server.csr server.key關鍵檔案解釋如下:
server.crt:伺服器憑證檔案。
server.key:伺服器私密金鑰檔案。
ca.crt:自我簽署憑證。
ca.key:自我簽署憑證私密金鑰。
步驟二:使用自訂認證開啟SSL鏈路加密
登入PolarDB管理主控台。
在頁面左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側功能表列中單擊配置與管理 > 安全管理。
在SSL配置頁簽,選擇在上一步產生的自訂認證關聯的主地址或者叢集地址,單擊SSL狀態右側滑塊或者單擊設定資料庫認證,開啟SSL加密。
在設定資料庫認證對話方塊,選擇自訂認證,填寫伺服器憑證及私密金鑰後,單擊確定,完成配置。

需要填寫的參數如下:
參數
取值
伺服器憑證
此參數填寫步驟一:擷取自訂認證步驟中擷取的server.crt檔案內容。請填寫-----BEGIN CERTIFICATE-----至-----END CERTIFICATE-----間的內容,包括BEGIN和END部分。
伺服器憑證私密金鑰
此參數填寫步驟一:擷取自訂認證步驟中擷取的 server.key 檔案內容。請填寫-----BEGIN PRIVATE KEY-----至-----END PRIVATE KEY-----間的內容,包括 BEGIN 和 END 部分。
如果申請認證時配置了多個串連地址,則在配置完成後,在SSL受保護的地址中看到多條記錄:

步驟三:用戶端串連資料庫
PolarDB PostgreSQL版資料庫支援通過SSL遠端連線,更多資訊,請參見SSL串連PolarDB PostgreSQL版PolarDB PostgreSQL版(相容Oracle)資料庫。
步驟四:(可選)更新認證
更新認證會造成串連閃斷,請謹慎操作。
如果您需要更新自訂認證,可以在SSL配置頁面,找到需要更新的主地址或者叢集地址,並單擊設定資料庫認證,填入新的伺服器憑證及私密金鑰,並單擊確定完成更新。

步驟五:(可選)關閉 SSL 鏈路加密
關閉 SSL 加密會造成串連閃斷,請謹慎操作。
如果您需要關閉SSL鏈路,可以在SSL配置頁面,找到需要關閉的主地址或叢集地址,單擊SSL狀態右側滑塊,在彈出的關閉SSL對話方塊中單擊確定。
