Sailsjs Heroku Postgresql错误:自签名证书。

4

我对sails.js不熟悉,我已经将其部署到heroku,并添加了一个heroku postgresql插件。在我的datastore.js文件中,我添加了以下配置,以便将我的模型迁移到新的数据库插件。

以下是我datastore.js文件的一部分:

adapter: "sails-postgresql",
    // URL: my-postgresql-url
    // ssl: true,

在我的production.js文件中,这是数据存储的一部分代码片段。
adapter: "sails-postgresql",
      url: process.env.DATABASE_URL,
      ssl: true,

我不知道问题出在哪里,但服务器一直抛出这个错误。
{                                                                                                      
  error: Error: self signed certificate                                                                
      at TLSSocket.onConnectSecure (_tls_wrap.js:1498:34)                                              
      at TLSSocket.emit (events.js:314:20)                                                             
      at TLSSocket.EventEmitter.emit (domain.js:486:12)                                                
      at TLSSocket._finishInit (_tls_wrap.js:933:8)                                                    
      at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:707:12) {                                           
    code: 'DEPTH_ZERO_SELF_SIGNED_CERT'                                                                
  },                                                                                                   
  meta: {                                                                                              
    adapter: 'sails-postgresql',                                                                       
    url: 'my-postgresql-url',
    ssl: true,                                                                                         
    identity: 'default'                                                                                
  }                                                                                                    
}         

我不知道该做什么,欢迎提供任何帮助。谢谢。

2个回答

3

好的,阅读了不同的文章和谷歌搜索后,为了解决这个问题,我只需要这样做。

ssl: {
 rejectUnauthorized: false
}

这样做解决了问题。


1
我想补充一下,我在升级从sails-postgresql ^1.02到^4.0.0(目前最新版本)时遇到了这个问题,而我必须这样做才能从node 12.x升级到16.x。这个答案对我有用。 - aleph_one

2

我整夜遇到了这个问题。经过一些摸索,发现在SSL设置中需要添加其他属性:

以下是Heroku PostgreSQL的工作数据存储对象:

datastores: {
  default: {
    adapter: 'sails-postgresql',
    url: process.env.DATABASE_URL,
    ssl: {
      sslmode: 'require',
      rejectUnauthorized: false,
    }
  },
},

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接