SequelizeConnectionError:自签名证书

IT技术 javascript postgresql express backend
2021-03-14 03:24:29

我正在尝试连接到我在 Heroku 中设置的 PostgreSQL 数据库。

const { Sequelize, DataTypes, Model } = require("sequelize");

// DB Configuration
const sequelize = new Sequelize({
  database: "[wont'd show db]",
  username: "[won't show username]",
  password: "[won't show password]",
  host: "ec2-54-221-195-148.compute-1.amazonaws.com",
  port: 5432,
  dialect: "postgres",
  dialectOptions: {
    ssl: true,
  },
});

这就是我得到的输出:

SequelizeConnectionError:自签名证书

4个回答

这是由于node-postgres版本 8 中的(意外)重大更改(请参阅此 GitHub 问题)。

解决方案是传递rejectUnauthorized: falsesequelize连接参数,如GitHub 用户 jsanta 所述

const sequelize = new Sequelize({
  database: "[wont'd show db]",
  username: "[won't show username]",
  password: "[won't show password]",
  host: "ec2-54-221-195-148.compute-1.amazonaws.com",
  port: 5432,
  dialect: "postgres",
  dialectOptions: {
    ssl: {
      require: true,
      rejectUnauthorized: false // <<<<<<< YOU NEED THIS
    }
  },
});
说真的,续集团队是否完全了解已发布的 API?就像……完全一样?(叹)
2021-04-28 03:24:29
这适用于 "sequelize": "^5.21.10", "pg": "^8.2.1",
2021-05-07 03:24:29
虚惊!我有一个错字。此修复程序有效:)
2021-05-08 03:24:29
@WithoutATowel 我已经回答了你的问题。如果它解决了您的问题,请检查并投票。谢谢
2021-05-14 03:24:29
FYI为sequelize 6.3.5,我不得不这样做:ssl: { rejectUnauthorized: false }
2021-05-18 03:24:29

它对我有用(在 sequelize config.json 文件上):

    "dialect": "postgres",
    "dialectOptions": {
      "ssl": {
        "require": true,
        "rejectUnauthorized": false
      }
    }

这对我有用,在config.json文件中

  "development": {
    "username": "dummy",
    "password": "dummy",
    "database": "dummy",
    "host": "dummy",
    "dialect": "postgres",
    "dialectOptions":{
      "ssl": {
        "require": true,
        "rejectUnauthorized": false
      }
    }
  }

在您的代码中添加以下内容...

dbRDS=false
你能举一个更完整的例子吗?它看起来像一个变量赋值,但仅此一项不会产生任何影响......
2021-05-14 03:24:29