昔作ったプロジェクトをコピーして、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 // ★このように書いてこのプロパティを追加
}
},
});
詳細は参考を参照。
コメント