【PostgreSQL】no pg_hba.conf entry for hostというエラーの対処法

困ったこと

const sequelize = new Sequelize(
"<データベース名>",
"<ロール名>",
"<パスワード>",
{
host: "<ホスト名>",
dialect: "postgres",
}
);

Node.jsのORMライブラリ「Sequelize」を使っており、その初期化をしようとしたら

no pg_hba.conf entry for host

上のようなエラーが出た。

解決法

const sequelize = new Sequelize(
"<データベース名>",
"<ロール名>",
"<パスワード>",
{
host: "<ホスト名>",
dialect: "postgres",
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false,
},
},
}
);

原因

追加したオプション名にもある通り、SSL接続を有効にしてなかったことが原因。

dialectOptions: {
ssl: true;
}

ちなみに上記のようにSSL接続を有効にするだけで解決しない場合もあるらしく、rejectUnauthorized: falseも必要になってくるとのこと。

詳しくは分かりかねるが、rejectUnauthorizedはSSL証明書云々の設定だとか。

1

参考
  1. javascript - SequelizeConnectionError: self signed certificate - Stack Overflow