31

PostgreSQL を使用し、Heroku でホストする Node.js アプリケーションを開発しています。私の問題は、次のような認証エラーが発生することです。

14:32:05 web.1     | { [error: no pg_hba.conf entry for host "193.40.244.196", user "username", database "database_name", SSL off]
14:32:05 web.1     |   length: 168,
14:32:05 web.1     |   name: 'error',
14:32:05 web.1     |   severity: 'FATAL',
14:32:05 web.1     |   code: '28000',
14:32:05 web.1     |   detail: undefined,
14:32:05 web.1     |   hint: undefined,
14:32:05 web.1     |   position: undefined,
14:32:05 web.1     |   internalPosition: undefined,
14:32:05 web.1     |   internalQuery: undefined,
14:32:05 web.1     |   where: undefined,
14:32:05 web.1     |   file: 'auth.c',
14:32:05 web.1     |   line: '483',
14:32:05 web.1     |   routine: 'ClientAuthentication' }

SSL の問題である可能性がありますが、ここに記載されているようにはなりません。SSL はすぐにサポートされる必要があります。だから私は困惑していて、このエラーの原因は何ですか?

システムで pg_hba.conf を編集する必要があるかどうかはわかりませんが、見つけることさえできません。

4

7 に答える 7

27

node-postgres は、JavaScript バインディングで SSL をサポートしていません。

var pg = require('pg');

SSL を取得するには、次のようにしてネイティブ バインディングを使用する必要があります。

var pg = require('pg').native;

アプリが Heroku 内で実行されている場合は SSL を使用する必要はありません。SSL を使用する必要があるのは、リモートで接続する場合のみです (アプリがローカルで実行されている場合)

于 2012-06-28T20:45:17.897 に答える
9

同じ問題に遭遇しました。db params で ssl=true を有効にしました。

var pg = require('pg');
var params = { host: 'heroku_hostname',user: 'username',password: 'password',database: 'database',ssl: true };
var client = new pg.Client(params);
client.connect();
于 2014-01-09T09:26:43.937 に答える
3

自分でこれに遭遇しました。これは簡単な修正です。代わりに HTTPS 経由で接続するだけです

于 2012-05-09T22:53:30.860 に答える