Sailsjs Heroku Postgresql Error: self signed certificate
Asked Answered
F

2

4

I am new to sails.js and I deployed to heroku and also added a heroku postgreql addon. In my datastore.js file, I added the following configuration so I could migrate my models to the new database addon. Here is a snippet of my datastore.js file.

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

In my production.js file here's a snippet of the datastore.

adapter: "sails-postgresql",
      url: process.env.DATABASE_URL,
      ssl: true,

I don't know what seems to be the issue, but this error keeps getting thrown by the server

{                                                                                                      
  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'                                                                                
  }                                                                                                    
}         

I don't know what exactly to do, any help would be welcome. Thank you.

Florencio answered 5/1, 2021 at 18:16 Comment(0)
F
3

Okay, after reading different articles and googling, to solve the issue, I just had to do this.

ssl: {
 rejectUnauthorized: false
}

and that fixed the issue.

Florencio answered 7/1, 2021 at 19:26 Comment(1)
I will add that I encountered this issue when upgrading from sails-postgresql ^1.02 to ^4.0.0 (currently latest), which I had to do in order to upgrade from node 12.x to 16.x. This answer worked for meCirrostratus
G
2

Hit this problem overnight. Some fiddling and identified that there are additional properties needed in the SSL setup:

A working datastore object for Heroku PostgreSQL is as follows:

datastores: {
  default: {
    adapter: 'sails-postgresql',
    url: process.env.DATABASE_URL,
    ssl: {
      sslmode: 'require',
      rejectUnauthorized: false,
    }
  },
},
Giron answered 2/4, 2021 at 2:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.