2017-02-08 12 views
1

md5で暗号化されたパスワードで接続を受信するようにPostgresを設定しようとしています。私はマニュアルをたくさん読んで指示に従っていますが、私はうまくいかないのです。docker環境でtcp md5のPostgresを設定する

私たちはいくつかのドッカーコンテナを持っています。そのうちの1つは、init_db.shスクリプトを使って設定しているPostgres 9コンテナです。実行中のコンテナ上の最終的な構成は以下のとおりです。

listen_addresses = '*' 
local all all md5 
host all all all md5 

実行:-i TCP lsofを:5432(私は今の私のMac上で実行している)、この生産:私は起動すると

COMMAND  PID USER FD TYPE    DEVICE SIZE/OFF NODE NAME 
com.docke 17454 sigals 36u IPv4 0x13ec351b99f025cd  0t0 TCP *:postgresql (LISTEN) 
com.docke 17454 sigals 37u IPv6 0x13ec351b8ce8a025  0t0 TCP localhost:postgresql (LISTEN) 

をコンテナが暗号化されたパスワードで実行されていると、次のようになります。 エラーorg.apache.tomcat.jdbc.pool.ConnectionPool:182 - プールの初期接続を作成できません。

2017-02-08T14:07:43.438478547Z org.postgresql.util.PSQLException: FATAL: password authentication failed for user "myuser" 

パスワードを平文として入力すると機能します。

IPをローカルホストのみに設定した場合、暗号化されたパスワードと平文のパスワードの両方が機能しました。

何を構成しましたか?

+0

あなたは「私はそれが動作平文として、パスワードを入れると」..どこにパスワードを置くことにより、何を意味していますか? –

+0

これはHibernateで動作するsprint-bootアプリケーションです。パスワードはapplication.dataasource.password –

+0

というプロパティのapplication.propertiesにあります。あなたはおそらく 'hba.conf'にある' md5'とdbに渡すmd5ハッシュを混同します認証のために? –

答えて

0

According to docs:

MD5は 認証のための二重MD5ハッシュパスワードを提供することをクライアントに要求します。詳細は、第20.3.2項を参照してください。

パスワード 認証に暗号化されていないパスワードをクライアントに要求する必要があります。パスワードは ネットワーク上でクリアテキストで送信されるため、信頼できないネットワークでは使用しないでください。詳細については、セクション 20.3.2を参照してください。

jdbc接続では、接続文字列自体でパスワードをハッシュします。自分でmd5する必要はありません。

もここを見て:? https://stackoverflow.com/a/39038852/5315974

+0

英語は私の第1言語ではないかもしれませんが、 MD5で暗号化されたパスワードを取得し、暗号化された元のパスワードと比較することができます。さらに、私の設定が:host all all 127.0.0.0/24 md5 Hibernateアプリケーションを使った私のspring-bootは、暗号化されたパスワードを使っても機能しました。もちろん、私はあなたを疑うことはありません、私はちょうど混乱している –

+0

それをこのように置くことができます。 https://www.postgresql.org/docs/9.2/static/protocol-flow.html接続コードに「AuthenticationMD5Password」がありますか?そうでない場合 - 自分でパスワードをハッシュしないでください。あなたがすれば - 私は申し訳ありません - あなたはそれを正しく行います。あなたがその行の前の接続のための 'trust'を持っているので - 今なぜあなたは間違っていると、' HBAにすべてのすべての127.0.0.0/24 md5'を主催た(ハッシュ化された)パスワードログインできます。それらが合理的に見えるならば何でもしてください? –

+0

いいえ、私はあなたがpsqlでデータベースに接続することができ、信頼 –