Postgresql

從 Windows 客戶端到 AWS RDS Postgresql 實例的 SSL 連接

  • September 6, 2021

我正在嘗試使用安全 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 $$. 希望能幫助到你。

參考:

  1. https://www.pgadmin.org/docs/dev/connect.html?highlight=ssl
  2. https://www.postgresql.org/docs/9.2/static/libpq-ssl.html

引用自:https://dba.stackexchange.com/questions/145819