31 ホスト名検証の使い方

Oracle WebLogic Serverでのホスト名検証の構成方法を学習します。ホスト名検証では、クライアントの接続先URLのホスト名と、SSL接続の一部としてサーバーが返送するデジタル証明書のホスト名が一致していることを確認します。ホスト名検証は、SSLクライアント(SSLクライアントとして機能しているWebLogic Serverなど)がリモート・ホスト上のアプリケーション・サーバーに接続する場合に役立ちます。また、中間者攻撃を防ぐのに役立ちます。

WebLogic Serverには2つのホスト名検証機能があります。また、カスタム・ホスト名検証を作成して使用することもできます。

この章の内容は次のとおりです。

デフォルトのWebLogic Serverホスト名検証の使用

デフォルトのWebLogic Serverホスト名検証を使用する場合、証明書のホスト名がローカル・マシンのホスト名と一致していて、URLでlocalhost127.0.01またはローカル・マシンのデフォルトIPアドレスが指定されていると、ホスト名検証は合格します。デフォルトでは、デフォルトのホスト名検証が構成されます。これを使用するために必要な操作はありません。

WebLogic ServerのSSLハンドシェーク機能としての動作は、SSLサーバーのデジタル証明書のSubjectDNにある共通名と、SSL接続の許可に使用するSSLサーバーのホスト名を比較することです。これらの名前が完全に一致しない場合は、SSL接続が中断されます。名前が一致しない場合はSSLクライアントが実際にSSL接続を中断します。

デフォルト以外の動作が必要な場合は、ホスト名検証を無効にするか、カスタム・ホスト名検証を構成します。ホスト名検証を無効にすると、WebLogic Serverは中間者攻撃に対して無防備な状態になります。本番環境では、ホスト名検証を有効にしておくことをお薦めします。

ノート:

マルチサーバー・ドメインでデモ用のID証明書を使用している場合、管理対象サーバーを管理サーバーの完全修飾DNS名で開始すると、管理対象サーバー・インスタンスの起動に失敗します。制限事項や推奨回避策の詳細は、「CertGenを使用する場合の制限事項」を参照してください。

Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次のトピックを参照してください。

Mac OS Xプラットフォームでのデフォルトのホスト名検証の使用

WebLogic Serverが、ホスト名がDHCPサーバーによって割り当てられるネットワーク内で動作するMac OS Xプラットフォームにインストールされる場合、デフォルトでは、Mac OS Xは、DHCPによって割り当てられたホスト名を使用してマシンのホスト名を動的にオーバーライドします。その結果、デモ用のID証明書を生成している場合、マシンに動的に再割当てされたホスト名と証明書内のホスト名が一致しなければ、ホスト名検証が失敗する可能性があります。

このホスト名の再割当ては、ネットワークが再起動したときなどに頻繁に行われます。Mac OS Xプラットフォーム上のWebLogic Serverでデモ用のID証明書を使用するには、次のいずれかを実行します。

  • ホスト名検証を無効にします(本番環境で操作している場合はお薦めしません)。

  • WebLogic Serverをインストールする前に、マシンに固定のホスト名を設定します。環境にもよりますが、これは/etc/hostconfigHOSTNAMEプロパティを-AUTOMATIC-から割り当てたい名前に変更することによって設定できます。たとえば:

    HOSTNAME=mymachine.example.com
    

    さらに、目的のホスト名がファイル/Library/Preferences/SystemConfiguration/preferences.plistで設定されていることを確認することもできます。使用しているプラットフォーム用のMac OS Xのドキュメントを参照してください。

ワイルドカードのあるホスト名検証の使用

デフォルトのWebLogic Serverホスト名検証に加えて、WebLogic Serverには、ワイルドカードのあるホスト名検証というもう1つのホスト名検証があります。ワイルドカードのあるホスト名検証は、デフォルトのWebLogic Serverホスト名検証と同様に機能しますが、さらにSSLセッション証明書も受け入れます。

ワイルドカードのあるホスト名検証は、さらに次のSSLセッション証明書を受け入れます。

  • 証明書のサブジェクト共通名属性(CNドメイン)から取得されるホスト名にアスタリスクのワイルドカード文字(*)が含まれる証明書

  • SubjectAlternativeName dnsName (SAN)証明書

この項では、次の項目について説明します。

ワイルドカードのあるホスト名検証の仕組み

SSLセッション証明書のホスト名に次の条件を満たすワイルドカード文字が含まれる場合、証明書はワイルドカードのあるホスト名検証に受け入れられます。

  • ホスト名に少なくとも2つのドット(.)文字が含まれる。

  • ホスト名がアスタリスク(*)で始まり、他にアスタリスクを含まない。

  • CN文字列からアスタリスク(*)を取ったときの残りの文字列が次のようになる場合

    • ドメインを表す。

    • 先頭にドット(.)文字を含む。

    • 受信リクエスト・ドメインの最後の文字列と同じ。

    • 他にドット(.)文字を含まない(これにより、ワイルドカードがサブドメインを表すことがなくなります。

SSLセッション証明書のホスト名が期待されるサーバー名属性と完全に一致せず、またホスト名をワイルドカードの受け入れ条件に従って正常に検証できない場合、ワイルドカードのあるホスト名検証は、SAN拡張の検証を試みます。

SAN拡張はSSLセッション証明書から取得されます。SAN拡張の値は、大文字と小文字を区別しない一致を使用して繰り返し適用されます。繰り返し値の場合、証明書のdnsName属性がリクエストURLと完全にまたはワイルドカード比較で一致すると、ホスト名検証が成功します。

ワイルドカードのあるホスト名検証の構成

ワイルドカードのあるホスト名検証のクラス名は、weblogic.security.utils.SSLWLSWildcardHostnameVerifierです。ワイルドカードのあるホスト名検証を構成するには、WebLogic Server管理コンソールの「サーバー」→「構成」→「SSL」ページで、カスタムのホスト名検証としてこのクラスを指定します。ワイルドカードのあるホスト名検証には、構成が必要なパラメータはありません。Oracle WebLogic Server管理コンソール・オンライン・ヘルプカスタム・ホスト名検証の構成に関する項を参照してください。

カスタム・ホスト名検証の使用

カスタム・ホスト名検証を使用する場合は、カスタム・ホスト名検証を実装するクラスを、WebLogic Server (SSLクライアントとして機能している場合)またはスタンドアロンのSSLクライアントのCLASSPATHに指定する必要があります。

カスタム・ホスト名検証の使用の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプカスタム・ホスト名検証の構成に関する項を参照してください。