NodeJS - SequelizeConnectionError: self signed certificate

Viewed 514

I am trying to connect to a PostgreSQL database hosted in Heroku

if (process.env.DATABASE_URL) {
  //Heroku
  console.log("Init sequelize with process.env.DATABASE_URL")
  sequelize = new Sequelize(process.env.DATABASE_URL, {
    dialect: 'postgres',
    protocol: 'postgres',
    dialectOptions: {
        ssl: true,
        rejectUnauthorized: false
    }
  });
  console.log("Finished sequelize with process.env.DATABASE_URL")
} else {
  console.log("Init sequelize with config.database")
  var sequelize = new Sequelize(config.database, config.username, config.password, config);
  console.log("Finished sequelize with config.database")
}

This is my config.json used for localhost:

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

When I run my service with pm2 start --env=production I get the following error:

ConnectionError [SequelizeConnectionError]: self signed certificate

Node version: v14.16.0

"sequelize": "^6.6.0"

"pg": "^8.5.1"

Can somebody please tell me what's going on here?

Thanks in advance

1 Answers

In your Heroku connection try to inform the ssl as:

          dialectOptions: {
               ssl: {
                    require: true,
                    rejectUnauthorized: false
                  }
          }
Related