SSLMODE接続パラメータを設定することにより、クライアント アプリケーションでTLSを有効にできます。次の表に、SSLMODEの有効な値とその機能の一覧を示します。
sslmode | 値 | 説明 |
---|---|---|
disable | D | 非TLSポートを使用して暗号化されていない接続を確立する。clispb.datまたはDBCAREAでdata_encryption=Yが指定されている場合は、TeraGSS暗号化メカニズムが使用される。 |
allow | A | 非TLSポートを使用して暗号化されていない接続を確立する。clispb.datまたはDBCAREAでdata_encryption=Yが指定されている場合は、TeraGSS暗号化メカニズムが使用される。サーバーが非TLSポートでの接続を許可するように設定されているが、非TLSポートへの接続を試みて失敗した場合(タイムアウトなど)、接続の試みは失敗してエラーが返される。 これはCLIのデフォルト値である。 管理者により、非TLSポートが無効にされてTLSポートが有効にされたフォールバック シナリオでは、暗号化(TLS)接続が使用される。 |
prefer | P | サーバーがTLSをサポートして、TLSポートが有効になっている場合は、暗号化(TLS)接続を確立する。サーバーがTLSポートでの接続を許可するように設定されているが、TLSポートへの接続を試みて失敗した場合(タイムアウトなど)、接続の試みは失敗してエラーが返される。 次のフォールバック シナリオでは、非TLSポートへの暗号化されていない接続が使用される。
|
require | R | サーバーがTLS接続をサポートしている場合は、暗号化(TLS)接続を確立する。TLS接続を確立できない場合、接続の試行は失敗する。非TLSポートにフォールバックしないこと。 |
verify-ca | C | requireとほぼ同じだが、さらに、サーバーの認証局(CA)の証明書を設定された信頼できるCA証明書と照合して検証する。一致する有効なCA証明書が見つからない場合、接続の試みは失敗する。 |
verify-full | F | verify-caとほぼ同じだが、さらに、クライアントがサーバーへの接続に使用するホスト名を、サーバーがクライアントに送信する証明書のIDと照合して、ホスト名が正しいかどうかを検証する。クライアントは、接続に使用するホスト名が、サーバー証明書のサブジェクト代替名または共通名の値と一致するかどうかを確認する。 一致しない場合は接続に失敗する。暗号化接続の場合、このオプションは中間者攻撃の防止に役立つ。 verify-fullモードの場合、ホスト名は証明書のサブジェクト代替名の属性と照合されるか、種類が「DNS名」のサブジェクト代替名が存在しない場合は、共通名の属性と照合される。証明書の名前属性がアスタリスク(*)で始まる場合、アスタリスクはワイルドカードとして扱われるため、ドット(.)以外のすべての文字と一致する。つまり、この証明書はサブドメインとは一致しないことになる。ホスト名の代わりにIPアドレスを使用して接続を行なうと、(DNS検索は行なわれずに)IPアドレスが照合される。 |
SSLMODEパラメータは、次の場所で指定できます。
clispb.dat(詳細については、システム パラメータ ブロック(SPB)処理を参照してください)
clispb.datに次の行を追加します。
sslmode=disable | allow | prefer | require | verify-ca | verify-full
環境変数
クライアント アプリケーションを実行する前に、次の環境変数を設定します。
Windows以外:
$ export SSLMODE=disable | allow | prefer | require | verify-ca | verify-full
Windowsの場合:
C:\> set SSLMODE=disable | allow | prefer | require | verify-ca | verify-full
DBCAREA sslmode
DBCAREA構造体で次のパラメータを設定します。
dbcarea.sslmode = ‘D’ | ‘A’ | ‘P’ | ‘R’ | ‘C’ | ‘F’
DBCAREA接続文字列
DBCAREA構造体のconnect_ptrパラメータは、sslmode属性を含む文字列に設定できます。
dbcarea.connect_ptr = “sslmode=disable | allow | prefer | require | verify-ca | verify-full”
さらに、dbcarea.connect_lenパラメータを、dbcarea.connect_ptrに割り当てられた文字列の長さに設定します。
上記の方法の優先順位は次のとおりです。
- clispb.dat
- 環境変数
- dbcarea.sslmode
- dbcarea.connect_ptr
DBCAREA o_sslmode
TLS接続が正常に確立すると、接続に使用される実際のSSLMODEはDBCAREAパラメータのo_sslmodeに戻ります。SSLMODEの設定にどの方法を使用した場合も、このパラメータが設定されます。SSLMODEの値がallow('A')およびprefer('P')の場合、o_sslmodeは、非TLS接続が使用された場合は'D'に設定され、TLS接続が使用された場合は'R'に設定されます。他のすべてのSSLMODE値については、o_sslmodeに指定されたSSLMODE値(D、R、C、Fなど)が含まれます。