從 Windows 客戶端到 AWS RDS Postgresql 實例的 SSL 連接
我正在嘗試使用安全 SSL 連接連接到託管在 AWS RDS 上的 PG 實例。我在哪裡將公鑰儲存在 Windows 上,以便它自動應用於連接?
請注意,當我打開 PGAdmin 時,它只允許我指定 .crt 和 .key 文件。有沒有辦法將它指向 .pem 文件?
我下載了此處引用的公鑰:http: //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.SSL
在 Linux 上,將這個密鑰放入預設的 OpenSSL 目錄很簡單,postgres 似乎會檢測到它並自行處理其餘部分。
在 Windows 上,我還沒有弄清楚如何執行此操作或將 .pem 文件儲存在何處或如何將 PGAdmin 指向 .pem 文件。
我找到了答案!原來連接一直是加密的,我只是沒有意識到。男孩這樣做讓我覺得自己很愚蠢。我最終下載了 Wireshark 並嗅探我的數據包以確保確定。
請注意,這適用於 ssl-mode “require”,但要使用 ssl-mode “verify-full”,您仍然需要根證書。在這種情況下,我只是將
rds-combined-ca-bundle.pem
其從 .pem 重命名為 .crt。這允許我從 PGAdmin 中連接屬性視窗的 SSL 選項卡中指向該文件。這樣做我可以指定 ssl-mode “verify-full” 並連接到我的實例。
編輯:
預設情況下,RDS Postgres 將接受非 SSL 連接。PGAdmin 只是在預設情況下啟動 SSL 連接。
…如果您不提供 ssl 模式,則 postgres 以預設模式連接為“首選”(請參閱上面提到的文件),根據該模式,它將首選 ssl 連接,但如果不可用,它將與非ssl連接也是如此。 資源
為確保您始終使用 SSL,您可以將參數設置
rds.force_ssl
為 1(打開)。更多細節。
如果您使用的是 PGAdmin,當您創建新連接時,會出現一個名為
SSL
$$ 1 $$. 在那裡你可以輸入你的pem文件。 如果您正在使用
psql
,請將您的pem
文件放在%APPDATA%\postgresql\
目錄中。在文件中查看更多詳細資訊$$ 2 $$. 希望能幫助到你。
參考: