Heroku Postgres 上的 Strapi CMS - 没有 pg_hba.conf 条目,SSL 关闭

Strapi CMS on Heroku Postgres - no pg_hba.conf entry, SSL off

我在 Heroku 中有 2 个具有相同代码版本的应用程序,它们都使用免费计划的 Heroku Postgres(业余爱好)。 但它们是在不同的时间创建的,相差几个月。

问题是,第一个工作正常,但第二个在启动时出现错误

error: no pg_hba.conf entry for host "210.221.51.3", user "byhoyaaasdevfr", database "darcnk9hucbap", SSL off

我阅读了有关使用 SSL 的信息,但我想保留免费计划,并且第一个应用程序在没有的情况下也能正常工作。 这是连接文件内容:

const parse = require("pg-connection-string").parse;
const config = parse(process.env.DATABASE_URL);

module.exports = ({ env }) => ({
  defaultConnection: "default",
  connections: {
    default: {
      connector: "bookshelf",
      settings: {
        client: "postgres",
        host: config.host,
        port: config.port,
        database: config.database,
        username: config.user,
        password: config.password,
      },
      options: {
        ssl: false,
      },
    },
  },
});

将选项 ssl 更改为 true 抛出

error Error: self signed certificate

Strapi 3.1.5

谢谢你的关注,你很棒

我们 运行 今天遇到了同样的问题,并通过将我们的 config/env/production/database.js 更新为 Strapi for Heroku 提供的问题来修复它:

const { parse } = require("pg-connection-string");

module.exports = ({ env }) => {
  const { host, port, database, user, password } = parse(env("DATABASE_URL"));

  return {
    defaultConnection: "default",
    connections: {
      default: {
        connector: "bookshelf",
        settings: {
          client: "postgres",
          host,
          port,
          database,
          username: user,
          password,
          ssl: { rejectUnauthorized: false }
        },
        options: {
          ssl: false
        },
      },
    },
  };
};

修复它的部分是 ssl: { rejectUnauthorized: false } 行。我只是不明白为什么必须在 Heroku pg 上禁用 ssl...