[Node.js]SequelizeConnectionError: self signed certificateが発生したときの対処方法

システム開発Tips

昔作ったプロジェクトをコピーして、HerokuにSequelize + ExpresssのアプリケーションをデプロイしたときにSequelizeConnectionError: self signed certificateが発生した。

原因

node modulesのpgのバージョンが8に上がってたのにそれに対応するDB接続設定がされていなかったことが原因でした。
npm iで最新のpgが入ってしまったみたい。。。

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  // ★これだけじゃいけない
  },
});

今までは上記のように書いていたのですが、pg8から以下のように記載が必要のようです。

対処

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: {
      require: true,
      rejectUnauthorized: false // ★このように書いてこのプロパティを追加
    }
  },
});

詳細は参考を参照。

参考

フォローお願いします!

コメント

タイトルとURLをコピーしました