Node.js Strongloop Heroku Postgres安装SSL错误

Node.js Strongloop Heroku Postgres安装SSL错误,node.js,postgresql,ssl,heroku,strongloop,Node.js,Postgresql,Ssl,Heroku,Strongloop,我是Node.js的新手,已经使用StrongLoop在Heroku(免费)上安装了一个应用程序。我设置了heroku postgresql插件(免费层),并尝试将数据源添加到StrongLoop的arc composer UI中。此UI更新服务器/datasources.json。当我尝试连接到数据源时,出现以下错误: no pg_hba.conf entry for host "X.X.X.X", user "myUser", database "mydb", SSL off 我知道问题一

我是Node.js的新手,已经使用StrongLoop在Heroku(免费)上安装了一个应用程序。我设置了heroku postgresql插件(免费层),并尝试将数据源添加到StrongLoop的arc composer UI中。此UI更新服务器/datasources.json。当我尝试连接到数据源时,出现以下错误:

no pg_hba.conf entry for host "X.X.X.X", user "myUser", database "mydb", SSL off
我知道问题一定是在postgres上设置SSL。最接近的StrongLoop文档没有完全讨论这一点:。。。因为我使用的是StrongLoop,而不仅仅是straight Node.js,Heroku的文档也让我感到缺乏。我不知道我到底需要从这里做什么

我有相当简单的newsfeed类型的JSON数据,我用Handlebar处理这些数据。因此,如果这是一个问题,与免费层,我愿意接受其他免费建议与我的设置。我感谢你的帮助

编辑,datasources.json:

{"db":{"name":"db","connector":"memory"},
"mydb":{
"host":"myhost",
"port":####,
"url":"myamazonawsurl:####/mydbname",
"database":"mydbname",
"password":"mypw",
"name":"mydatasourcename",
"ssl":true,
"user":"myuser",
"connector":"postgresql"}}
更多错误详细信息:

error: no pg_hba.conf entry for host "X.X.X.X", user "myuser", database "mydb", SSL off at 
Connection.parseE (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:539:11) at 
Connection.parseMessage (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:366:17) at 
Socket.<anonymous> (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:105:22) at 
Socket.emit (events.js:107:17) at readableAddChunk (_stream_readable.js:163:16) at 
Socket.Readable.push (_stream_readable.js:126:10)
错误:主机“X.X.X.X”、用户“myuser”、数据库“mydb”没有pg_hba.conf条目,SSL在
Connection.parseE(c:\myroot\node\u modules\loopback connector postgresql\node\u modules\pg\lib\Connection.js:539:11)位于
Connection.parseMessage(c:\myroot\node\u modules\loopback connector postgresql\node\u modules\pg\lib\Connection.js:366:17)位于
插座(c:\myroot\node\u modules\loopback connector postgresql\node\u modules\pg\lib\connection.js:105:22)
位于readableAddChunk(_stream_readable.js:163:16)的Socket.emit(events.js:107:17)
Socket.Readable.push(_stream_Readable.js:126:10)

根据您链接的文章,您需要修改
datasources.json
配置以适应您的Heroku环境

从heroku pg:credentials DATABASE\u URL获取您的详细信息,该数据库将显示以下内容(当然,没有我使用过的占位符!):

将其粘贴到
datasources.json

  "accountDB": {
     "connector": "postgresql",
     "url": "postgres://user:password@ec2-host.compute-1.amazonaws.com:5432/your-db-name?sslmode=require"
  }

PostgreSQL docs for Loopback提供了一些进一步的详细信息,但以上内容应该可以让您开始使用。

通过在命令行中设置以下环境变量,要求Postgres连接使用SSL:

$ export PGSSLMODE=require
它应该是“?ssl=true”而不是“?sslmode=require”


我自己也遇到了类似的问题,我找到了这个解决方案来解决它。与@Lieblingsfarbe的答案类似,但这是在Heroku CLI中

进入Heroku CLI->应用程序目录->发出以下命令:

heroku config:set PGSSLMODE=require

参考:经过几个小时的尝试和研究,我在这里找到了它()

我尝试了以上所有选项,但在我的例子中,我使用了错误的postgresql驱动程序

在检查了我的postgresql版本10.4之后,我不得不使用下面的gradle配置:

compile group: 'org.postgresql', name: 'postgresql', version: '42.2.5'

我试过了,但没有成功:{“db”:{“name”:“db”,“connector”:“memory”},“mydb”:{“host”:“myhost”,“port”:“url”:“myamazonawsurl:########/mydbname”,“database json”:“mydbname”,“password”:“mypw”,“name”:“mydatasourcename”:“mydatasourcename”,“ssl”:“true”,“user”:“myuser”,“connector”:“postgresql”}你能用你输入的数据源更新你的问题吗?注释不能很好地格式化JSON。如果你也可以发布你得到的错误,这将有所帮助。根据你粘贴的内容,我认为你没有正确输入。是的,很抱歉。添加它们。StrongLoop的UI自动将连接字符串放置在datasources.json的字段中。我手动将“ssl”:true添加到文件中。请注意,
url
属性会隐藏其他配置属性。您应该将它们作为查询参数作为url的一部分,例如:“url”:postgres://user:password@ec2 host.compute-1.amazonaws.com:5432/您的数据库名?ssl=true“,right@RaymondFeng我同意它更干净,但除了添加ssl密钥,heroku端还有一些东西需要配置。这很有效!!非常感谢你!!Heroku,如果你在这里,请把这个放在升级DB计划的文档中。。。
heroku config:set PGSSLMODE=require
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.5'