[pgpool-general-jp: 1611] Re: pgpool-IIにおけるクライアント証明書による認証につきまして
Tatsuo Ishii
ishii @ sraoss.co.jp
2019年 9月 7日 (土) 06:38:37 JST
石井です。
> 江頭と申します。
> いつもお世話になっております。
>
> pgpool-IIにおけるクライアント認証につきまして、教えて下さい。
>
> 現在、データベース<->アプリケーション間で
> クライアント証明書によるクライアント認証を実施しており、
> その間にpgpoolをかませることを検討しています。
>
> 要件上、以下のようにpgpoolとアプリを同一サーバ上に配置して
> DBサーバへの接続を行おうとしているのですが、
> クライアント認証がうまく通りません。
> ------------- -----------------------
> | DBサーバ <--|-|--> pgpool <--> アプリ |
> ------------- -----------------------
>
> pgpoolとアプリケーション間でのクライアント証明書による認証は
> V4.0より対応されているようですが、
> DBサーバとのクライアント証明書による認証は
> どのようにセットアップすれば利用できるのでしょうか?
>
> マニュアルやFAQも参照しましたが、
> DBサーバ(バックエンド)との間でのクライアント証明書による認証の設定については
> 記載を見つけることが出来ませんでした。
> 手探りで進めておりましたがどうしても接続に至らない(*)ため
> 質問させていただいております。
>
> *: DBサーバ側のログに "FATAL: connection requires a valid client certificate" と出て接続が失敗します。
>
> # もしかして、pgpoolではDBサーバのクライアント証明書認証には対応していないのでしょうか?
はい、残念ながら今の所pgpoolではDBサーバのクライアント証明書認証には対
応しておりません。マニュアルにはその旨記載されています。(ちょっと分か
りにくい表現ですが)
https://www.pgpool.net/docs/latest/ja/html/auth-methods.html#AUTH-CERT
「注意: 証明書認証はクライアントとPgpool-IIの間で使用され、バックエンド認証にはその他の認証方式を使用できます。」
対応していない理由は、PostgreSQLはユーザごとにコモンネームが異なる証明
書を要求するからです。つまり、pgpoolはユーザ数分だけの証明書を別途登録、
管理しなければならないのですが、その仕組みが実装できていないためです。
それなりに大変な作業になるので、それに見合う十分なニーズが無い限りは実
装されないと思うのですが、証明書認証は結構使われているのでしょうか?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp
pgpool-general-jp メーリングリストの案内