Node.js 在开发环境中使用Heroku PG在GeddyJs上获取SSL错误
我将GeddyJs与heroku cedar应用程序部署一起使用。我正在为数据库使用Heroku Postgres服务 我已经在geddyjs的配置文件中配置了用户名/密码/主机名/数据库名,但是当我运行Node.js 在开发环境中使用Heroku PG在GeddyJs上获取SSL错误,node.js,postgresql,heroku,geddy,Node.js,Postgresql,Heroku,Geddy,我将GeddyJs与heroku cedar应用程序部署一起使用。我正在为数据库使用Heroku Postgres服务 我已经在geddyjs的配置文件中配置了用户名/密码/主机名/数据库名,但是当我运行node app.js时,它会为nopg_hba.conf抛出一个错误,我知道这与远程访问数据库时未使用SSL有关,但我不知道如何在连接上强制使用SSL 以下是错误日志: 我的config/development.js文件: 如果您试图从heroku外部进行连接,则需要使用SSL进行连接。我们只
node app.js
时,它会为nopg_hba.conf
抛出一个错误,我知道这与远程访问数据库时未使用SSL有关,但我不知道如何在连接上强制使用SSL
以下是错误日志:
我的config/development.js文件:
如果您试图从heroku外部进行连接,则需要使用SSL进行连接。我们只允许使用SSL加密来自heroku外部的连接
错误:没有主机“70.199.196.17”、用户“12345”、数据库“database1”的pg_hba.conf条目,SSL关闭
表示您无法连接SSL关闭
此外,您可能正在使用database1清理数据库名称,但如果您没有,我可以向您保证,您的数据库名称实际上不是database1
此外,您不应该将凭证硬编码到文件中。从您的环境中读取它们。您需要将
ssl:true
添加到您的postgres配置中
postgres: {
port: 5432
, password: 'foobar'
, database: 'database1'
, host: 'ec2-107-21-126-45.compute-1.amazonaws.com'
, user: '12345'
, ssl: true
}
Geddy只是将这个配置对象传递给pg模块。有关更多信息,请查看 谢谢,这是为了发展,因为我没有pg安装在本地。我的凭证存储在我的环境中,就像您推荐的那样。此外,为了回答这个问题,我还更改了我的数据库名/用户/通行证信息
var config = {
detailedErrors: true
, debug: true
, hostname: 'localhost'
, port: 3000
, model: {
defaultAdapter: 'postgres'
}
, db: {
postgres: {
port: 5432
, password: 'foobar'
, database: 'database1'
, host: 'ec2-107-21-126-45.compute-1.amazonaws.com'
, user: '12345'
}
}
, sessions: {
store: 'memory'
, key: 'sid'
, expiry: 14 * 24 * 60 * 60
}
};
module.exports = config;
postgres: {
port: 5432
, password: 'foobar'
, database: 'database1'
, host: 'ec2-107-21-126-45.compute-1.amazonaws.com'
, user: '12345'
, ssl: true
}