2017-09-13 129 views
1

在PostgreSQL裏,每當我執行API URL中包含PostgreSQL的:SSL證書錯誤無法獲取本地頒發者證書

select * 
from http_get('https://url......'); 

我得到一個錯誤

SSL證書與查詢 安全連接問題:無法獲得本地發行人證書

爲此,我已經放置了一個SSL文件夾在我的天藍色數據庫安裝文件中,以下路徑

C:\Program Files\PostgreSQL\9.6\ssl\certs 

我應該怎麼做才能擺脫這種情況?是否有任何SSL擴展可用,還是我需要配置更改或任何其他努力?

請讓我知道它的可能的解決方案。

回答

1

的幾個問題...

首先,您使用此模塊的contrib:https://github.com/pramsey/pgsql-http

是否服務器https://url.......使用自簽名(或無效)證書?

如果這兩個問題的答案是「是」,那麼您可能無法使用該contrib模塊而無需進行某些修改。我不確定在Azure中訪問PostgreSQL的限制有多少,但是如果您可以安裝自己的基於C的contrib模塊,則有一些希望...

pgsql-http僅公開某些CURLOPT(請參閱:https://github.com/pramsey/pgsql-http#curl-options)這是可設置與http_set_curlopt()

對於使用自簽名證書端點值,我想你會想包括支持忽略SSL錯誤CURLOPT是CURLOPT_SSL_VERIFYPEER

如果有喜歡的SSL等問題/ TLS協議或密碼不匹配,還有其他CURLOPT可以打補丁,但這些也不是沒有定製的contrib模塊。

我覺得沒有什麼在你的

C:\Program Files\PostgreSQL\9.6\ssl\certs 

文件夾對HTTP_GET()的功能沒有任何影響。

如果你不想讓你的手髒編譯和安裝自定義的貢獻模塊,你可以在維護人員的github頁面上創建一個問題,看看它是否被拿起。

您也可以看一下https://github.com/pramsey/pgsql-http#why-this-is-a-bad-idea,因爲該模塊的作者提出了幾個很好的觀點。

相關問題