“在 2019 年 10 月 31 日之前更新您的 Amazon RDS SSL/TLS 證書”
我和很多人一樣,收到一封電子郵件,說要更新我的 RDS 實例以使用新的 rds-ca-2019 證書進行 SSL 連接(之前是 rds-ca-2015,將於 2020 年 3 月 5 日到期)。他們關於該過程的文件有點稀疏,並說諸如“更新您的數據庫應用程序以使用新的 SSL/TLS 證書”之類的內容。和“將證書導入您的作業系統”。沒有關於客戶端所需更改的更多詳細資訊。
最初設置時,我沒有安裝任何證書,而是使用了普通的 Ubuntu 18.04 EC2 映像。RDS 實例設置為使用 rds-ca-2015,當我使用 psql 連接到 RDS 時,它報告它正在正確使用 TLSv1.2。如果我查看作業系統中安裝的根證書,我會發現編號為 1 到 4 的 4 個“Amazon Root CA”證書。這些證書要到 2038 年和 2040 年才會過期。
所以,我的問題有兩個部分:
- 如果我從未安裝過Amazon 提供的 RDS 證書和中間證書,SSL/TLS 最初是如何正常工作的?
- 如果我已將 RDS 數據庫實例更改為使用 rds-ca-2019 並且它似乎“正常工作”,我還需要做些什麼嗎?
PostgreSQL的預設設置
sslmode``prefer
是這意味著它將使用伺服器提供的證書加密連接,但不會驗證它。如果我要將sslmode
設置更改為verify-ca
orverify-full
然後我需要將中間證書安裝在特定目錄中,然後它將進行適當的驗證。由於我不擔心對我的 VPC 的 MITM 攻擊,我認為我不會費心切換到“驗證”模式。
有問題的 RDS 證書是中間證書。您可能還知道它是 CA 證書。例如,當我使用 MySQL Workbench 時,我必須指定
- 我想使用 SSL(TLS)
- 使用 RDS CA 鏈文件驗證證書
如果我從未安裝過 SSL/TLS 最初是如何正常工作的
$$ certificate $$?
取決於你的系統是如何設置的。CA 證書只是為提供的證書提供受信任的權威。完全有可能設置一些可以接受任何證書的東西,而無需嘗試驗證它(即您使用自簽名證書)。另一種選擇是您的 CA 儲存中已經存在隱式信任它的東西。這不太可能,但並非不可能。
如果您在本地執行此操作(例如,您在與 RDS 實例相同的 VPC 中有一個 EC2 實例),您甚至可能不需要 SSL。
如果我已將 RDS 數據庫實例更改為使用 rds-ca-2019 並且它似乎“正常工作”,我還需要做些什麼嗎?
不。這很令人困惑,但是如果您正在連接並且沒有收到任何證書錯誤,我不會擔心。