2014-05-07 87 views
5

我試圖使用SSL連接到在AWS(亞馬遜網絡服務)上運行的RDS。我在PosgreSQL pgAdmin III文檔中看到有關SSL選項卡上字段的信息有限。PostgreSQL pgAdmin III到AWS RDS實例的SSL連接

RDS實例設置爲默認接受SSL連接。

我已經從亞馬遜下載了公鑰並將其從.pem轉換爲使用openSSL的.crt文件。在pgAdmin III的SSL選項卡中,我輸入了轉換密鑰文件「服務器根證書文件」字段的路徑。

我可以連接到實例沒有問題但沒有跡象表明數據正在通過SSL傳輸AWS不會將其RDS實例設置爲獨佔使用SSL,因此我可能無需使用SSL即可連接,但不知道它。

確實的pgAdmin III表明,當它使用SSL (如一個鎖形圖標)連接任何跡象? 任何人都可以提供描述pgAdmin III中SSL選項卡上的字段(SSL下拉,客戶端證書文件,客戶端密鑰)的其他信息?

謝謝。

回答

-1

我還沒有在AWS上使用過PGAdmin的SSL,但是我有一臺服務器,而且我可以告訴你,你知道當你通過PGAdmin連接到服務器時,我不確定那裏有多少歧義,你能看到數據庫,表嗎?

下面引用的帖子可能會幫助您通過SSL連接到服務器。

在客戶端,我們需要三個文件。對於Windows,這些文件在%appdata%\ postgresql \目錄中必須爲 。對於Linux〜/ .postgresql/ 目錄。 root.crt中(受信任的根證書)postgresql.crt(客戶端 證書)postgresql.key(私鑰)

生成服務器計算機上所需的文件,然後將其複製 到客戶端。我們將在/ tmp/ 目錄中生成所需的文件。

首先爲客戶機創建私鑰postgresql.key, 並刪除密碼。

openssl genrsa -des3 -out /tmp/postgresql.key 1024 

openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key 

然後創建證書postgresql.crt。它必須由我們的 可信根(使用服務器 機器上的私鑰文件)進行簽名。另外,證書通用名稱(CN)必須設置爲我們將連接的數據庫用戶名 。

openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr -subj '/C=CA/ST=British Columbia/L=Comox/O=TheBrain.ca/CN=www-data' 

openssl x509 -req -in /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial 

我們複製從服務器的/ tmp /目錄中創建的 客戶端機器的三個文件。

複製來自服務器的可信根證書root.crt中到 客戶端機器(適用於Windows的pgAdmin%APPDATA%\的PostgreSQL \或Linux的 pgAdmin的〜/ .postgresql /)。更改 postgresql.key的文件權限以限制對您的訪問(由於受限訪問已被繼承,因此可能不需要訪問 Windows)。從服務器/ tmp /目錄中刪除 文件。

來源:http://www.howtoforge.com/postgresql-ssl-certificates

-1

首先,登錄爲您的PostgreSQL管理用戶然後運行以下對RDS安裝sslinfo:

create extension sslinfo; 

要驗證,如果你通過SSL連接只需運行以下查詢會話:

select ssl_is_used(); 

如果它返回true(t),那麼你通過SSL連接。

相關問題