2017-07-06 64 views
0

我有一個Heroku PostgreSQL數據庫。使用Heroku提供的憑證(主機,數據庫,用戶名,密碼),我可以使用PSequel客戶端從本地機器進行連接。由於Heroku需要SSL,我必須檢查「使用SSL」,這會導致出現更多字段(客戶端密鑰,客戶端證書,服務器根證書)。但是,Heroku不提供這樣的證書。我可以通過勾選「使用SSL」來連接到數據庫,但不提供這些證書給PSequel。Heroku PostgreSQL - 如何在沒有證書的情況下發生SSL連接?

這是如何工作的?我的印象是SSL連接需要證書。沒有證書,我的理解是你可以做密鑰交換和加密,但是你不知道你在跟誰說話,所以你很容易受到中間人攻擊。根據我的理解,我不能用SSL連接到Heroku PostgreSQL數據庫,或者我錯了嗎?

過去,我使用Google Cloud SQL(MySQL)和Sequel Pro。在該設置中,我將Cloud SQL設置設置爲需要SSL,並且Google向我提供了證書(客戶端密鑰,客戶端證書和服務器CA),然後將其提供給Sequel Pro以便使用SSL進行連接。如果我嘗試在未提供證書的情況下嘗試連接(但請勾選「使用SSL連接」,並輸入正確的主機,用戶名,密碼),我無法連接,而是獲得「拒絕訪問」權限。

回答

0

你應該ask PSequel,因爲這不是開源的,所以我不能看代碼。

通常,爲PostgreSQL服務器設置SSL連接時,客戶端可以使用連接選項sslmode =require強制SSL連接,並且您不需要擁有客戶端證書(SSL用於encryprion,然後,而不是認證)。

相關問題