如果使用云端證書或自定義證書開啟SSL鏈路加密,則表示在SSL鏈路中,客戶端驗證數據庫的真實性。如果您需要數據庫也驗證客戶端的真實性,還需要配置客戶端CA證書,本文介紹配置客戶端CA證書的具體操作。
前提條件
已安裝OpenSSL工具。
說明如果您使用Linux系統,系統會自帶OpenSSL工具,無需安裝。如果您使用Windows系統,請獲取OpenSSL軟件包并安裝。
注意事項
配置客戶端CA證書后,已有連接需要斷開重連,加密才會生效。
配置客戶端CA證書、更改客戶端CA證書內容、修改客戶端證書吊銷列表,將會重啟您的數據庫實例,用時約3分鐘左右,請在業務低峰期操作。
操作步驟
步驟一:獲取客戶端證書
本文以CentOS系統配置為例,如果您使用Windows操作系統,操作步驟中的openssl
命令與CentOS系統中的openssl
命令配置相同。
生成自簽名證書(client-ca.crt)和自簽名證書私鑰(client-ca.key)。
openssl req -new -x509 -days 3650 -nodes -out client-ca.crt -keyout client-ca.key -subj "/CN=root-client-ca"
生成客戶端證書請求文件(client.csr)和客戶端證書私鑰(client.key)。
openssl req -new -nodes -text -out client.csr -keyout client.key -subj "/CN=<客戶端用戶名>"
說明該命令中-subj參數后的CN取值請配置為客戶端訪問數據庫的用戶名。
生成客戶端證書(client.crt)。
openssl x509 -req -in client.csr -text -days 365 -CA client-ca.crt -CAkey client-ca.key -CAcreateserial -out client.crt
完成以上配置后,執行ls
命令,查看已生成的文件:
# ls
client-ca.crt client-ca.key client-ca.srl client.crt client.csr client.key
關鍵文件解釋如下:
client.crt:客戶端證書文件。
client.key:客戶端私鑰文件。
client-ca.crt:自簽名證書。
client-ca.key:自簽名證書私鑰。
步驟二:配置客戶端CA證書
配置客戶端CA證書后,實例的運行狀態將會變更為修改SSL中,該狀態將持續三分鐘左右,請耐心等待運行狀態變更為運行中后再進行后續操作。
- 訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
進入
>SSL頁面。單擊啟用客戶端CA證書。
將自簽名證書文件(client-ca.crt)內容填寫到對話框中。然后單擊確定按鈕。
說明自簽名證書文件(client-ca.crt)獲取請參見步驟一:獲取客戶端證書。請填寫-----BEGIN CERTIFICATE-----至-----END CERTIFICATE-----間的內容,包括BEGIN和END部分。
步驟三:客戶端連接數據庫
RDS PostgreSQL數據庫支持通過SSL遠程連接,具體請參見SSL連接RDS PostgreSQL數據庫。
步驟四:(可選)配置證書吊銷文件
如果您不再使用某一客戶端證書時,可以將客戶端證書吊銷,數據庫將拒絕此客戶端登錄。
配置證書吊銷文件后,實例的運行狀態將會變更為修改SSL中,該狀態將持續三分鐘左右,請耐心等待運行狀態變更為運行中后再進行后續操作。
配置文件準備。
touch /etc/pki/CA/index.txt echo 1000 > /etc/pki/CA/crlnumber
說明如果您使用Windows系統,需要按照如下步驟操作:
在OpenSSL安裝目錄\bin目錄下創建CA文件夾。
在CA文件夾內創建index.txt文件。
命令行執行如下命令:
echo 1000 > <OpenSSL安裝目錄>\bin\CA\crlnumber
修改C:\Program Files\Common Files\SSL\目錄下中的openssl.cnf文件。
# 找到[ CA_default ]配置項 dir = "<OpenSSL安裝目錄>\\bin\\CA"
吊銷客戶端證書(client.crt)。
openssl ca -revoke client.crt -cert client-ca.crt -keyfile client-ca.key
說明該命令需要使用到自簽名證書(client-ca.crt)及自簽名證書私鑰(client-ca.key),請參見步驟一:獲取客戶端證書。
生成證書吊銷文件(client.crl)。
openssl ca -gencrl -out client.crl -cert ca.crt -keyfile ca.key
進入
>SSL頁面。單擊啟用證書吊銷文件。
將證書吊銷文件(client.crl)內容填寫到對話框中。
步驟五:(可選)更新客戶端證書
更新證書會重啟實例,請謹慎操作。
如果您需要更新證書,可以在SSL頁面單擊清除客戶端CA證書按鈕,清除客戶端CA后,重新單擊啟用客戶端CA證書。