SequelizeConnectionError: self signed certificate

12,540

Solution 1

This is due to an (accidental) breaking change in node-postgres version 8 (see this GitHub issue).

The solution is to pass rejectUnauthorized: false to the sequelize connection parameters inside of dialectOptions>ssl, as described here by GitHub user jsanta:

const sequelize = new Sequelize({
  database: "xxxxx",
  username: "xxxxx",
  password: "xxxxx",
  host: "xxxxx",
  port: 5432,
  dialect: "postgres",
  dialectOptions: {
    ssl: {
      require: true,
      rejectUnauthorized: false // <<<<<<< YOU NEED THIS
    }
  },
});

Solution 2

in my case none of the above works, I use the connection string method to apply pg configurations, so I set the query param sslmode=no-verify and I got it works

example

postgres://myuser:mypassword@myhost:5432/mydatabasename?sslmode=no-verify
Share:
12,540
Dmitriy Shin
Author by

Dmitriy Shin

Updated on June 03, 2022

Comments

  • Dmitriy Shin
    Dmitriy Shin almost 2 years

    I am trying to connect to a PostgreSQL Database that I've set up in Heroku.

    const { Sequelize, DataTypes, Model } = require("sequelize");
    
    // DB Configuration
    const sequelize = new Sequelize({
      database: "[wont'd show db]",
      username: "[won't show username]",
      password: "[won't show password]",
      host: "ec2-54-221-195-148.compute-1.amazonaws.com",
      port: 5432,
      dialect: "postgres",
      dialectOptions: {
        ssl: true,
      },
    });
    
    

    And this is what I am getting as the output:

    SequelizeConnectionError: self signed certificate