5.13. Secure Socket Layer (SSL)

5.13.1. SSLの設定

ssl (boolean)

onに設定すると,Pgpool-IIはフロントエンドとバックエンドの両方の通信でのSSLが可能になります。 デフォルトはoffです。

注意: フロントエンド接続でSSLを動作させるには、ssl_keyssl_certが設定されてなければなりません。

注意: SSLサポートを有効にするためには、Pgpool-IIをOpenSSLサポート付きでビルドする必要があります。 Pgpool-IIのビルドについて詳細は項2.5をご覧ください。

このパラメータはサーバ起動時にのみ設定可能です。

ssl_key (string)

フロントエンドとの接続に使用するプライベートキーファイルのパスを指定します。 相対パスで指定した場合、Pgpool-IIの実行ディレクトリが基準となります。 このオプションのデフォルト値はありません。 設定がない場合は、フロントエンドとの接続でSSLが使用されなくなります。

このパラメータはサーバ起動時にのみ設定可能です。

ssl_cert (string)

フロントエンドとの接続に使用する公開x509証明書のフルパスを指定します。 相対パスで指定した場合、Pgpool-IIの実行ディレクトリが基準となります。 このオプションのデフォルト値はありません。 設定がない場合は、フロントエンドとの接続でSSLが使用されなくなります。

このパラメータはサーバ起動時にのみ設定可能です。

ssl_ca_cert (string)

PEM形式のCAルート証明書のパスを指定します。 これはバックエンドサーバ証明書の検証に用いられます。 このオプションはOpenSSL verify(1)コマンドにおける-CAfileオプションと同様の機能を提供します。

このパラメータはサーバ起動時にのみ設定可能です。

ssl_ca_cert_dir (string)

PEM形式のCAルート証明書ファイルが格納されているディレクトリへのパスを指定します。 これはバックエンドサーバ証明書の検証に用いられます。 このオプションはOpenSSL verify(1)コマンドにおける-CAfileオプションと同様の機能を提供します。

デフォルトでは値が設定されておらず検証は行われません。 このオプションが設定されていない場合においても、ssl_ca_certオプションが設定されている場合には検証が行われます。

このパラメータはサーバ起動時にのみ設定可能です。

ssl_ciphers (string)

SSL接続で使用できるSSL暗号スイートのリストを指定します。 設定構文と使用可能な値のリストについてはOpenSSLパッケージの ciphersマニュアルをご覧ください。 TLSバージョン1.2あるいはそれ以下のバージョンのみが影響を受けます。 今の所、TLSバージョン1.3接続で使用される暗号の選択を制御する設定はありません。 デフォルト値はHIGH:MEDIUM:+3DES:!aNULLで、PostgreSQLと同じです。 この値が選ばれた理由については、PostgreSQLのマニュアルをご覧ください。

このパラメータはサーバ起動時にのみ設定可能です。

ssl_prefer_server_ciphers (boolean)

クライアントではなく、サーバ指定のSSL暗号を選択します。 デフォルト値はoffです。

このパラメータはサーバ起動時にのみ設定可能です。

ssl_ecdh_curve (string)

ECDHキー交換で使われる曲線の名前を指定します。 接続する全てのクライアントがこの設定をサポートしている必要があります。 サーバの楕円曲線キーで使用されるのと同じ曲線である必要はありません。 デフォルト値はprime256v1です。

よく使われる曲線の OpenSSL 名は、 prime256v1 (NIST P-256), secp384r1 (NIST P-384), secp521r1 (NIST P-521) です。 利用できる曲線の完全なリストはopenssl ecparam -list_curvesで得られます。 ただし、TLSではこのすべてが利用できるわけではありません。

このパラメータはサーバ起動時にのみ設定可能です。

ssl_dh_params_file (string)

いわゆる短命DH系SSL暗号で使用するディフィー・ヘルマンパラメータを格納するファイル名を指定します。 デフォルトは空で、この場合はコンパイル時に決められたデフォルトのDHパラメータが使用されます。 攻撃者が、よく知られたコンパイル時設定のDHパラメータを解読しようとしている場合には、カスタムDHパラメータを使うことでその危険性を低減できます。 openssl dhparam -out dhparams.pem 2048を使って、独自のDHパラメータファイルを作ることができます。

このパラメータはサーバ起動時にのみ設定可能です。

5.13.2. SSL証明書の生成

証明書の扱いについてはこのマニュアルの範囲外です。 PostgreSQLドキュメントSSLによる安全なTCP/IP接続の章に自分で認証する証明書を作成するコマンドの例があります。