プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティの管理
12c (12.2.1.2.0)
E82873-02
目次へ移動
目次

前
次

40 ネットワーク・チャネル固有のIDキーストアの構成

この章では、ネットワーク・チャネルに独自のカスタムIDキーストアを構成する方法、またその他のSSL属性を構成する方法を説明します。これらの属性は、管理対象サーバー・インスタンスまたはドメインのデフォルトのキーストアおよびSSL構成の設定とは分離され、それらよりも優先されます。これによって、あるネットワーク・チャネルではあるIDとSSL、別のネットワーク・チャネルでは別のIDとSSLを使用するように、WebLogic Serverインスタンスを構成できます。

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

ネットワーク・チャネルについて

『Oracle WebLogic Serverサーバー環境の管理』のネットワーク・チャネルの理解に関する項で説明されているように、WebLogic Serverインスタンスのネットワーク・チャネルは次の4つの属性の組合せです。

  • 通信プロトコル(t3、t3s、httpまたはhttps)

  • リスニング・アドレス

  • リスニング・ポート

  • チャネル名

デフォルトでは、ネットワーク・チャネルを構成するとき、チャネルはサーバー・インスタンス用に設定されているSSL構成を使用します。つまり、チャネルは、サーバー用に確立されるものと同じアイデンティティと信頼を使用します。サーバーは、サーバー・インスタンスおよびドメインの構成方法に応じて、そのサーバー固有のカスタム・アイデンティティを使用する場合とドメイン全体で1つのアイデンティティを使用する場合があります。

ただし、場合によっては、管理対象サーバー・インスタンスが参加するすべてのネットワーク通信で1つのIDを使用するのではなく、サーバーが特定のクライアントと通信するときに別のIDに切り替える必要があります。たとえば、特定のビジネス・グループと通信するときはサーバーで特定のIDを使用し、ドメイン内の他の管理対象サーバー・インスタンスと通信するときは別のIDを使用する必要があるとします。サーバー・インスタンスに対して構成されたIDキーストアとも、ドメインに対して構成されたIDキーストアとも分離された、カスタムIDキーストアを使用するようにネットワーク・チャネルをカスタマイズすることで、一方のネットワーク・チャネルに対して一方のID、もう一方のネットワーク・チャネルに対してもう一方のIDを確保できます。

チャネル固有のSSL構成属性

NetworkAccessPointMBeanに、チャネル固有のSSL構成を作成するために設定できる属性が含まれます。これらの属性を使用して、ネットワーク・チャネルがカスタムIDキーストアを使用できるようにするだけでなく、カスタム・ホスト名検証の使用、SSL通信で使用される暗号スイート、証明書検証ルールなど、他のSSL設定もカスタマイズできます。

表40-1に、特定のネットワーク・チャネルに対してNetworkAccessPointMBeanに構成できるSSL属性を示して説明します。

注意:

表40-1を見やすくするために、NetworkAccessPointMBeanの次の属性は、CustomIdentityKeyStore*属性としてまとめて記載しています。

  • CustomIdentityKeyStoreFileName

  • CustomIdentityKeyStorePassPhrase

  • CustomIdentityKeyStorePassPhraseEncrypted

  • CustomIdentityKeyStoreType

表40-1 チャネルのSSL構成をカスタマイズするためのNetworkAccessPointMBean属性

属性 説明
ChannelIdentityCustomized

チャネルのカスタムIDを使用する必要があるかどうかを指定します。この設定は、ネットワーク・チャネルがカスタム・キーストアを使用する場合のみ有効です。デフォルトではチャネルのIDはサーバーのIDを継承します。

CustomIdentityKeyStore*属性には、ChannelIdentityCustomized属性に関連する次の検証ルールがあります。これらのルールにより、ネットワーク・チャネル別名は、デフォルトのサーバー・キーストアの別名ではなく、チャネル・キーストアに関連付けられます。

  1. いずれかのCustomIdentityKeyStore*属性を設定する場合、すべてのCustomIdentityKeyStore*属性を設定する必要があります。

  2. ChannelIdentityCustomized属性はtrueに設定する必要があります。

  3. CustomPrivateKeyAlias属性を設定する必要があります。

CustomIdentityKeyStore*属性が設定されない場合、CustomPrivateKeyAlias属性がサーバーのキーストアを参照するように設定できることに注意してください。

CustomIdentityKeyStoreFileName

チャネルに割り当てるカスタムIDキーストアを指定します。この属性の値が設定されない場合、ServerMBean.CustomIdentityKeyStoreFileName属性の値がデフォルトで使用されます。

この属性が使用されるのは、ServerMBean.KeyStores属性が次のいずれかの値に設定される場合のみです。

  • CUSTOM_IDENTITY_AND_JAVA_STANDARD_TRUST

  • CUSTOM_IDENTITY_AND_CUSTOM_TRUST

  • CUSTOM_IDENTITY_AND_COMMAND_LINE_TRUST

JKSキーストアを使用する場合、サーバーが起動されるディレクトリの絶対パスまたは相対パスとしてこの値を指定します。詳細は、キーストアの構成を参照してください。

Oracle OPSSキーストア・サービス(KSS)キーストアを使用する場合は、この値をKSS URIとして指定します。詳細は、「カスタムIDおよびカスタム信頼に対するOPSSキーストア・サービスの構成: 主な手順」を参照してください。

CustomIdentityKeyStorePassPhrase

チャネルのカスタムIDキーストアのためのプレーン・テキスト形式のパスフレーズを暗号化および復号化します。この属性を使用してキーストアのパスワードを設定すると、WebLogic Serverは自動的に値を暗号化して、CustomIdentityKeyStorePassPhraseEncrypted属性に格納します。値が空またはnullの場合、パスフレーズを必要としないキーストアを開くことができます。

この属性の値が設定されない場合、ServerMBean.CustomIdentityKeyStorePassPhrase属性の値がデフォルトで使用されます。

この属性が使用されるのは、ServerMBean.KeyStores属性が次のいずれかの値に設定される場合のみです。

  • CUSTOM_IDENTITY_AND_JAVA_STANDARD_TRUST

  • CUSTOM_IDENTITY_AND_CUSTOM_TRUST

  • CUSTOM_IDENTITY_AND_COMMAND_LINE_TRUST

注意: CustomIdentityKeyStorePassPhraseを使用すると潜在的なセキュリティ上のリスクにつながります。暗号化されていないパスワードを格納するString型のオブジェクトが、ガベージ・コレクションによって削除され、メモリーの再割当てが行われるまで、期限がはっきりしない状況でJVMのメモリー内に留まるためです。このため、かわりにCustomIdentityKeyStorePassPhraseEncrypted属性を使用することをお薦めします。

CustomIdentityKeyStorePassPhraseEncrypted

カスタムIDキーストアの作成時に設定される暗号化されたパスワードを指定します。この属性の値が設定されない場合、ServerMBean.CustomIdentityKeyStorePassPhraseEncrypted属性の値がデフォルトで使用されます。

この属性が使用されるのは、ServerMBean.KeyStores属性が次のいずれかの値に設定される場合のみです。

  • CUSTOM_IDENTITY_AND_JAVA_STANDARD_TRUST

  • CUSTOM_IDENTITY_AND_CUSTOM_TRUST

  • CUSTOM_IDENTITY_AND_COMMAND_LINE_TRUST

CustomIdentityKeyStoreType

カスタムIDキーストアのキーストア・タイプを指定します。JKSキーストアを使用する場合、値をJKSとして指定します。Oracle OPSSキーストア・サービスを使用する場合は、この値をKSSとして指定します。

この属性の値が設定されない場合、ServerMBean.CustomIdentityKeyStoreType属性の値がデフォルトで使用されます。

この属性の値が使用されるのは、ServerMBean.KeyStores属性が次のいずれかの値に設定される場合のみです。

  • CUSTOM_IDENTITY_AND_JAVA_STANDARD_TRUST

  • CUSTOM_IDENTITY_AND_CUSTOM_TRUST

  • CUSTOM_IDENTITY_AND_COMMAND_LINE_TRUST

ClientCertificateEnforced

クライアントが、信頼される認証局から取得したデジタル証明書をこのチャネルのWebLogic Serverに提示する必要があるかどうかを定義します。

CustomPrivateKeyAlias

カスタムIDキーストアでのチャネルの秘密鍵の格納と取得に使用される別名の文字列を指定します。この秘密鍵はサーバーのデジタル証明書に関連付けられます。nullの場合、ネットワーク・チャネルがサーバーのSSL構成に指定された別名を使用することを示します。

CustomIdentityKeyStore*属性が設定されない場合、CustomPrivateKeyAlias属性がサーバーのキーストアを参照するように設定できることに注意してください。

CustomPrivateKeyPassPhrase

チャネルのカスタムIDキーストアからチャネルの秘密鍵を取得するために使用されるプレーン・テキスト形式のパスフレーズを暗号化および復号化します。この属性を使用して秘密鍵のパスフレーズを設定すると、WebLogic Serverは自動的に値を暗号化して、CustomPrivateKeyPassPhraseEncrypted属性に格納します。このパスフレーズは、生成時に秘密鍵に割り当てられます。nullの場合、ネットワーク・チャネルがサーバーのSSL構成に指定されたパスフレーズを使用することを示します。

CustomPrivateKeyPassPhraseEncrypted

カスタムIDキーストアからチャネルの秘密鍵を取得するために使用される暗号化パスフレーズを指定します。

OutboundPrivateKeyEnabled

NetworkAccessPointMBean.CustomPrivateKeyAlias属性によって指定されるIDを、このチャネルのアウトバウンドSSL接続で使用する必要があるかどうかを指定します。通常、アウトバウンドIDは呼出し側環境によって決定されます。

TwoWaySSLEnabled

このネットワーク・チャネルが双方向SSLを使用するかどうかを指定します。

HostnameVerificationIgnored

ホスト名検証(weblogic.security.SSL.HostnameVerifier)の構成済実装を無視するかどうかを指定します。

この属性が使用されるのは、サーバーがリモート・ホスト上の他のアプリケーション・サーバーに対してクライアントとして作動する場合のみです。

この属性の値が設定されない場合、SSLMBean.HostnameVerificationIgnored属性の値がデフォルトで使用されます。

HostnameVerifier

weblogic.security.SSL.HostnameVerifierインタフェースを実装するクラスの名前を指定します。

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

この属性の値が設定されない場合、SSLMBean.HostnameVerifier属性の値がデフォルトで使用されます。

Ciphersuites

ネットワーク・チャネルのSSLリスナーで使用される暗号スイートを指定します。SSLハンドシェイクの際に、ネゴシエーションされた最も強固な暗号スイートが選択されます。

デフォルトで有効になっている暗号スイートは、WebLogic Serverが構成されている特定のJDKバージョンによって異なります。詳細は、「暗号スイート」を参照してください。

この属性の値が設定されない場合、SSLMBean.Ciphersuites属性の値がデフォルトで使用されます。

注意: SSLMBean.Ciphersuites属性はWebLogic Server管理コンソールで設定できませんが、NetworkAccessPointMBean.Ciphersuites属性はコンソールで設定できます。

AllowUnencryptedNullCipher

暗号化されていないNULL暗号がネットワーク・チャネルで使用できるかどうかを指定します。この属性の値が設定されない場合、SSLMBean.AllowUnencryptedNullCipher属性の値がデフォルトで使用されます。

SSLハンドシェイクの際に、使用される暗号スイートのセットについてサーバーとクライアントがネゴシエーションするとき、クライアントがNULL暗号のみを含む暗号スイートのセットを指定することがあります。NULL暗号はクリアテキストのデータを回線上に渡すため、ネットワーク・パケット・スニファがSSLメッセージを見ることができます。NULL暗号が使用されるとき、SSLを認証に使用できますが、メッセージは暗号化されないことがあります。

デフォルトでは、WebLogic ServerではNULL暗号を使用できません。詳細は、『Oracle WebLogic Server本番環境の保護』のSSLでのNULL暗号の使用に関する注意事項を参照してください。

InboundCertificateValidation

インバウンドSSLのクライアント証明書の検証ルールを指定します。この属性は、双方向SSLを使用するように構成されているネットワーク・チャネルのみに適用されます。

次のいずれかの値を設定できます。

  • BuiltinSSLValidationOnly - 組込みの信頼性のある認証局に基づいた検証を使用します。これがデフォルトです。

  • BuiltinSSLValidationAndCertPathValidators - 組込みの信頼性のあるCAに基づいた検証と、構成済の証明書パス検証プロバイダも使用して、追加の検証を実行します。

これらのルールの詳細は、「WebLogic ServerでのSSL証明書検証の動作」を参照してください。

この属性の値が設定されない場合、SSLMBean.InboundCertificateValidation属性の値がデフォルトで使用されます。

OutboundCertificateValidation

アウトバウンドSSLのサーバー証明書の検証ルールを指定します。

次のいずれかの値を設定できます。

  • BuiltinSSLValidationOnly - 組込みの信頼性のある認証局に基づいた検証を使用します。これがデフォルトです。

  • BuiltinSSLValidationAndCertPathValidators - 組込みの信頼性のあるCAに基づいた検証と、構成済の証明書パス検証プロバイダも使用して、追加の検証を実行します。

これらのルールの詳細は、「WebLogic ServerでのSSL証明書検証の動作」を参照してください。

この属性の値が設定されない場合、SSLMBean.OutboundCertificateValidation属性の値がデフォルトで使用されます。

チャネル固有のIDキーストアを構成する手順

管理対象サーバーで使用されるIDキーストアとは別のカスタムIDキーストアを使用するようにネットワーク・チャネルを構成するには、次の手順を実行します。

  1. カスタムIDキーストアを構成して、ネットワーク・チャネルで使用される秘密鍵とパブリックID証明書を追加し、秘密鍵の別名を割り当てます。

  2. カスタム・ネットワーク・チャネルを作成し、次の属性を割り当てます。属性の組合せがドメインで一意であることを確認してください。

    • チャネル名

    • リスニング・アドレス

    • リスニング・ポート

    • セキュアな通信プロトコル(HTTPSまたはt3s)

    詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプ「カスタム・ネットワーク・チャネルの構成」を参照してください。

  3. 次の属性をNetworkAccessPointMBeanに設定して、手順1で作成したカスタムIDキーストアを使用するようにチャネルを構成します。

    • CustomIdentityKeyStoreFileName — JKSキーストアを使用する場合、キーストアのパスを指定します。KSSキーストアを使用する場合は、この値をKSS URIとして指定します。

    • CustomIdentityKeyStoreType - キーストアのタイプを指定します。たとえば、JKSまたはKSSです。

    • カスタムIDキーストアのパスフレーズを使用する、CustomIdentityKeyStorePassPhraseEncrypted属性またはCustomIdentityKeyStorePassPhrase属性。

    • ChannelIdentityCustomizedtrueに設定します。

    • CustomPrivateKeyAlias - カスタムIDキーストアでのチャネルの秘密鍵の格納と取得に使用される別名の文字列を指定します。この秘密鍵はチャネルのID証明書に関連付けられています。この属性を設定すると、チャネル別名が、サーバーのIDキーストアの別名ではなく、チャネルのカスタムIDキーストアに対応するようになります。

    • CustomPrivateKeyPassPhraseCustomPrivateKeyAlias属性で参照される秘密鍵のパスフレーズの値を指定します。

    詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプ「ネットワーク・チャネル固有のキーストアとSSL属性の構成」を参照してください。

    注意:

    CustomIdentityKeyStoreFileNameCustomIdentityKeyStoreTypeCustomIdentityKeyStorePassPhraseEncryptedまたはCustomIdentityKeyStorePassPhrase属性のいずれかが設定される場合、チャネルの別名が、デフォルトのサーバー・キーストアの別名ではなく、チャネルのカスタムIDキーストアに関連するためには、次のすべての条件が満たされることが必要です。

    1. これらすべての属性を設定する必要があります(つまり、CustomIdentityKeyStoreFileNameCustomIdentityKeyStoreTypeCustomIdentityKeyStorePassPhraseEncryptedおよびCustomIdentityKeyStorePassPhraseをすべて設定する必要があります)。

    2. NetworkAccessPointMBean.ChannelIdentityCustomized属性はtrueに設定する必要があります。

    3. NetworkAccessPointMBean.CustomPrivateKeyAlias属性を設定する必要があります。

    CustomIdentityKeyStoreFileNameCustomIdentityKeyStoreTypeCustomIdentityKeyStorePassPhraseEncryptedおよびCustomIdentityKeyStorePassPhrase属性がどれも設定されていない場合、ネットワーク・チャネルの秘密鍵別名がサーバーのキーストアを参照するように設定できることに注意してください。

  4. ネットワーク・チャネルのその他の属性を必要に応じて構成します。詳細は、『Oracle WebLogic Serverサーバー環境の管理』の「チャネルの構成」と、Oracle WebLogic Server管理コンソール・オンライン・ヘルプ「カスタム・ネットワーク・チャネルの構成」を参照してください。

    ホスト名検証クラスの指定の詳細は、ホスト名検証の使い方を参照してください。

    インバウンドとアウトバウンドの証明書検証の詳細は、SSL証明書の検証を参照してください。

WLSTを使用したチャネル固有のIDキーストアの構成

この項では、チャネル固有のIDキーストアを構成するためのWLSTの使用例を示します。例40-1は、次のことを示しています。

  1. 管理対象サーバー・インスタンスに接続します。

  2. カスタムIDキーストアを構成する特定のネットワーク・チャネル(https-override)に対応するMBeanに移動します。

  3. カスタムIDキーストア・ファイル(channelIdentity.jks)の名前と場所を設定します。

  4. カスタムIDキーストアのパスフレーズを設定します。

  5. カスタムIDキーストアのタイプをJKSに設定します。

  6. チャネルのカスタムIDを使用する必要があることを設定します。

  7. カスタム秘密鍵の別名をmyIDに設定します。

  8. カスタム秘密鍵のパスフレーズを設定します。

  9. 新しいチャネル構成を保存してアクティブ化し、管理対象サーバー・インスタンスとの接続を切断します。

例40-1 カスタムIDキーストアの構成

connect('admin-user','password') 
edit()
startEdit()
cd ('Servers/myserver/NetworkAccessPoints/https-override')
 
cmo.setCustomIdentityKeyStoreFileName('/path/keystores/channelIdentity.jks')  
cmo.setCustomIdentityKeyStorePassPhrase('passphrase') 
cmo.setCustomIdentityKeyStoreType('JKS')
cmo.setChannelIdentityCustomized(true)
cmo.setCustomPrivateKeyAlias('myID')
cmo.setCustomPrivateKeyPassPhrase('keypassphrase')
 
save()
activate()
disconnect()