我可以配置 connect-pg-simple 以启用 SSL 吗?

Can I configure connect-pg-simple to have SSL on?

我是 运行 Postgres 数据库和 Heroku 上的节点应用程序。当我尝试做

app.use(session({
  store: new pgSession({
    conString: process.env.DATABASE_URL
  }),
  secret: 'my-super-secret-session',
  resave: false,
  cookie: {
    maxAge: 7 * 24 * 60 * 60 * 1000
  }
}));

我收到投诉:error: no pg_hba.conf entry for host "1.2.3.4", user ,myuser", database "mydb", SSL off

我想我需要告诉 connect-pg-simple 以某种方式使用 SSL?

您需要在 pg_hba.conf 中添加一个条目以允许您的连接。

示例:

vi $PGDATA/pg_hba.conf
host    all             all             1.2.3.4/32           md5

保存此配置文件后,您需要通过发出配置重新加载命令重新加载它:

pg_ctl reload

然后重试连接。

如果您无法编辑 pg_hba.conf,因为您使用的是像 heroku 这样的服务,请试试这个。

您只需将 conString 替换为 conObject 并指定 connectionStringssl 选项即可。

app.use(session({
  store: new pgSession({
    conObject: {
      connectionString: process.env.DATABASE_URL,
      ssl: true,
    },
  }),
  secret: 'my-super-secret-session',
  resave: false,
  cookie: {
    maxAge: 7 * 24 * 60 * 60 * 1000
  }
}));