在PostgreSQL中,每当我使用查询执行具有安全连接的API时,如下所示
select *
from http_get('https://url......');我犯了个错误
SSL证书问题:无法获得本地颁发者证书
为此,我已经在下面的路径中将一个SSL文件夹放置在我的azure数据库安装文件中
C:\Program Files\PostgreSQL\9.6\ssl\certs我该怎么做才能摆脱这一切?是否有任何SSL扩展可用,或者我是否需要配置更改或任何其他努力?
请让我知道可能的解决办法。
发布于 2017-09-13 19:56:17
一些问题..。
首先,您是否使用了这个控制模块:https://github.com/pramsey/pgsql-http?
服务器是否使用自签名(或无效)证书为https://url.......服务?
如果这两个问题的答案是“是”,那么您可能无法在不进行一些修改的情况下使用该控制模块。我不知道您对Azure中PostgreSQL的访问有多有限,但是如果您能够安装自己的基于C的控制模块,就会有一些希望……
pgsql-http只公开某些CURLOPTs (参见:https://github.com/pramsey/pgsql-http#curl-options)值,这些值可以用http_set_curlopt()设置
对于使用自签名证书的端点,我希望您希望包含对忽略SSL错误的支持是CURLOPT_SSL_VERIFYPEER。
如果有其他问题,如SSL/TLS协议或密码不匹配,还有其他CURLOPTs可以修补,但这些也是不可用的,除非定制的控制模块。
我不认为你的
C:\Program Files\PostgreSQL\9.6\ssl\certs文件夹对http_get()功能有任何影响。
如果您不想让您的手脏编译和安装自定义控制模块,您可以在维护人员的github页面上创建一个问题,并查看它是否被选中。
您还可以浏览一下https://github.com/pramsey/pgsql-http#why-this-is-a-bad-idea,因为模块的作者提出了几个非常好的观点需要考虑。
https://stackoverflow.com/questions/46204185
复制相似问题