[11/15開催: PostgreSQL Conference Japan 2019 参加受付中] 
他のバージョンの文書 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

F.32. sslinfo

現在のクライアントがPostgreSQLに接続する際に提供する SSL 証明書に関する情報を、sslinfoモジュールは提供します。 現在の接続が SSL を使用しない場合、モジュールは無用です(大部分の関数は NULL を返します)。

インストールを--with-opensslオプション付きで構築しない限り、この拡張は全く構築されません。

F.32.1. 提供される関数

ssl_is_used() returns boolean

サーバへの接続において SSL を使用する場合 TRUE、使用しない場合 FALSE を返します。

ssl_client_cert_present() returns boolean

現在のクライアントがサーバに対して、有効な SSL クライアント証明書を提示した場合 TRUE、そうでない場合 FALSE を返します。 (サーバがクライアントに対して、クライアント証明書を要求する方式と要求しない方式があります)。

ssl_client_serial() returns numeric

現在のクライアント証明書のシリアル番号を返します。 証明書の発行者とシリアル番号の組み合わせにより、証明書の識別が独自に保障されます。 (しかし、証明書の所有者の保障ではないので、所有者は定期的にその鍵を変更し、発行者から新しい証明書を取得すべきです)。

したがって、自分で設立した認証局の証明書だけをサーバが受理する場合、シリアル番号は利用者の識別に最も信頼できる方法です(記憶力の増進にはなりませんが)。

ssl_client_dn() returns text

現在のクライアント証明書の項目の内容を全て返します。 文字データは現在のデータベースのエンコーディングに変換されます。 なお、証明書名で用いる非 ASCII 文字をデータベースでも使用できると仮定します。 データベースが SQL_ASCII エンコーディングを使用する場合、証明書名で用いる非 ASCII 文字は UTF-8 のユニコードとして表示されます。

その結果は以下となります。 /CN=Somebody /C=Some country /O=Some organization

ssl_issuer_dn() returns text

現在のクライアント証明書の発行者名を全て返します。 文字データは現在のデータベースのエンコーディングに変換されます。 エンコーディングの変換法は ssl_client_dn と同じです。

本関数の戻り値とシリアル番号の組み合わせにより、証明書を独自に識別します。

実際に本関数が有用となるのは、サーバの root.crt ファイルの中に信頼できる認証局の証明書を保有する場合、または証明書を発行した認証局が信頼できる認証局から認証されている場合だけです。

ssl_client_dn_field(fieldname text) returns text

クライアント証明書の指定した項目の内容を返します。 指定した項目が存在しない場合は NULL を返します。 項目の名前は OpenSSL オブジェクトデータベースが使用する ASN1 オブジェクト識別子に変換された文字列の定数です。 以下の項目が受理できます。

commonName (alias CN)
surname (alias SN)
name
givenName (alias GN)
countryName (alias C)
localityName (alias L)
stateOrProvinceName (alias ST)
organizationName (alias O)
organizationUnitName (alias OU)
title
description
initials
postalCode
streetAddress
generationQualifier
description
dnQualifier
x500UniqueIdentifier
pseudonym
role
emailAddress
    

commonName を除き、全ての項目は任意です。 使用する認証局の方針によって、どの項目を含むかは全て決まります。 しかし、X.500 および X.509 の基準によって、項目の意味は厳格に定義されています。 したがって、項目に任意の意味を持たせることはできません。

ssl_issuer_field(fieldname text) returns text

証明書の内容ではなく証明書の発行者向けという点を除き、ssl_client_dn_field と同様の関数です。

F.32.2. 著者

Victor Wagner , Cryptocom LTD

Cryptocom 社 OpenSSL 開発グループのメールアドレス