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.

thatguy
  • 370
  • 1
  • 5
  • 22

2 Answers2

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.

mikermcneil
  • 11,141
  • 5
  • 43
  • 70
thatguy
  • 370
  • 1
  • 5
  • 22
  • 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 me – aleph_one Mar 28 '22 at 19:44
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,
    }
  },
},
Minal Chauhan
  • 6,025
  • 8
  • 21
  • 41
Adam
  • 21
  • 1