【问题标题】:"Self signed certificate" error on Heroku running sequelize db:migrateHeroku 运行 sequelize db:migrate 时出现“自签名证书”错误
【发布时间】:2021-06-29 13:51:36
【问题描述】:

我有一个带有 Postgres 数据库的 Node / Express 应用程序,可以在我的本地机器上完美运行,但我很难让它在 Heroku 上运行。问题发生在我推送到成功构建的 Heroku 之后,然后我尝试运行 heroku run sequelize db:migrate。错误是:

ERROR: self signed certificate

我的设置:

  • 节点 v15.12.0
  • Postgres 数据库(“Heroku Postgres”插件)
  • pg v8.5.1
  • 续集 v6.6.2
  • sequelize-cli v6.2.0

我的 Sequelize 连接参数:

{
  "development": {
    "username": "XXXXXX",
    "password": "XXXXXX",
    "database": "party_playlist",
    "host": "127.0.0.1",
    "dialect": "postgres"
  },
  "production": {
    "use_env_variable": "DATABASE_URL",
    "dialect": "postgres",
    "dialectOptions": {
      "ssl": {
         "require": "true",
         "rejectUnauthorized": "false"
      }
    }
  }
}

许多帖子都谈到了这个问题(GitHub:1 | 2 | 3,StackOverflow:1 | 2 | 3),大多数都指向 pg v8 作为问题;但是,没有一个推荐的解决方案对我有用。

到目前为止我已经尝试过:

  1. rejectUnauthorized: false 添加到我的 Sequelize 连接参数中
  2. 在 dialectOptions 之外的配置中添加 ssl:true
  3. NODE_TLS_REJECT_UNAUTHORIZED=0 添加到我的 Heroku 环境变量中
  4. PGSSLMODE=no-verify 添加到我的 Heroku 环境变量中
  5. 打开/关闭 Heroku 的 Automatic Certificate Management 功能
  6. 回滚到 pg v7(各种颠覆)

1-5 没有效果,回滚到 pg v7 会破坏应用程序(在本地,任何尝试对数据库的读/写操作都会挂起,没有错误消息;在 heroku 上,db:migrate 命令运行时没有错误消息,但数据库没有更新)。我假设 pg v7 与我的 Node 版本或我的项目中的某些其他包版本不兼容,但我不知道如何找出兼容的版本集,而不是通过反复试验,这是不可行的。另外,顺便说一句,这是一个爱好项目,所以我不担心 MITM 攻击。

有趣的是,当我运行heroku pg:psql时,我能够很好地连接到我的 Heroku 数据库!

有什么办法可以解决这个问题吗?任何和所有的帮助将不胜感激!

【问题讨论】:

    标签: node.js postgresql heroku sequelize.js


    【解决方案1】:

    我从here 看到您的问题,那里接受的答案对我有用。我观察到我们有相同版本的 pg 和 sequelize 但不同版本的节点。我在 v14.8.0 上。我建议您使用nvm 切换到该版本并重试,因为我观察到奇数(如13,15)的节点版本经常会出现问题(不过我的观察可能是错误的)。

    【讨论】:

    • 感谢camelCase!整理出来......我的布尔值被一些额外的引号包裹起来。感谢您的关注!
    • 哦,我什至没有注意到。不过很酷。
    【解决方案2】:

    这个:

    "ssl": {
        "require": "true",
        "rejectUnauthorized": "false"
     }
    

    应该是这样的:

    "ssl": {
        "rejectUnauthorized": false
     }
    

    注意布尔值周围的引号。

    愚蠢的错误,但我会留下这个,以防有一天其他人犯同样的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 2021-04-11
      • 2021-12-16
      • 2023-03-30
      • 2019-01-23
      • 1970-01-01
      • 2013-03-08
      相关资源
      最近更新 更多