[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 メーリングリストの案内