4 セキュリティの構成
この章の内容は次のとおりです。
- プロキシ・プラグインでのSSLの使用
Secure Sockets Layer (SSL)プロトコルを使用して、プロキシ・プラグインとOracle WebLogic Serverの間の接続を保護できます。SSLプロトコルは、プロキシ・プラグインとOracle WebLogic Serverの間で渡されるデータに対する機密性と整合性を提供します。 - 境界認証の構成
境界認証を使用して、プロキシ・プラグインを使用してアクセスされるOracle WebLogic Serverアプリケーションを保護します。
プロキシ・プラグインでのSSLの使用
Secure Sockets Layer (SSL)プロトコルを使用して、プロキシ・プラグインとOracle WebLogic Serverの間の接続を保護できます。SSLプロトコルは、プロキシ・プラグインとOracle WebLogic Serverの間で渡されるデータに対する機密性と整合性を提供します。
プロキシ・プラグインでは、プロキシ・プラグインとOracle WebLogic Serverとの間の接続の保護にSSLを使用するかどうかの決定に、HTTPリクエストで指定された(通常はブラウザによって指定)トランスポート・プロトコル(HTTPまたはHTTPS)を使用しません。つまり、プロキシ・プラグインは、(通常はブラウザからの)HTTPリクエストでHTTPS (SSL)が使用されるかどうかには一切依存しません。
かわりに、プロキシ・プラグインでは、「Oracle WebLogic Serverプロキシ・プラグインのSSLパラメータ」で説明されているように、プロキシ・プラグインに対して構成したSSLパラメータを使用して、いつSSLを使用するかを決定します:
WebLogicSSLVersion
- プロキシ・プラグインとOracle WebLogic Serverの間の通信に使用するSSLプロトコル・バージョンを指定します。WLSSLWallet
- Oracle WebLogic Serverの14.1.1.0プロキシ・プラグインは、Oracleウォレットを使用してSSL構成情報を格納します。ウォレットを構成するには、SSL構成パラメータWLSSLWallet
を使用します。この目的のために、プロキシ・プラグインのディストリビューション内にorapki
ユーティリティが用意されています。orapkiユーティリティでは、ウォレット、証明書失効リストなど、公開キー・インフラストラクチャ(PKI)の要素をコマンド行で管理するため、実行するタスクをスクリプトに組み込むことができます。これを使用して、PKIを保守するルーチン・タスクの多くを自動化できます。「証明書の検証とCRL管理にorapkiユーティリティを使用する方法」を参照してください。
SecureProxy
-SecureProxy
パラメータは、SSLを有効にするかどうかを決定します。
ノート:
Oracle WebLogic Server側で以前のバージョンのSSL/TLSを構成する方法の詳細は、『Oracle WebLogic Serverセキュリティの管理』のweblogic.security.SSL.protocolVersionシステム・プロパティの使用に関する項を参照してください。双方向SSLの場合、Oracle WebLogic Serverが双方向SSL用に構成され、クライアント証明書をリクエストすると、プロキシ・プラグイン(SSLクライアント)で双方向SSLが自動的に使用されます。Oracle WebLogic Serverでの双方向SSLの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのサーバー: 構成: SSLに関する項を参照してください。
クライアント証明書がリクエストされていない場合、プロキシ・プラグインはデフォルトで一方向SSLになります。
ノート:
Oracle WebLogic Server 14.1.1.0製品がOracle WebLogic Serverプロキシ・プラグインと同じシステムにインストールされている場合、ORACLE_HOME
変数が有効なインストールを指している必要があります。そうでない場合、プロキシ・プラグインはSSLの初期化に失敗します。
たとえば、製品が正常に削除されなかったためにORACLE_HOME
が無効な場合、プロキシ・プラグインはSSLの初期化に失敗します。
この項には次のトピックが含まれます:
- SSL用のライブラリの構成
- 一方向SSL用のプロキシ・プラグインの構成
- プロキシ・プラグインとOracle WebLogic Serverの間の双方向SSLの構成
- MD5アルゴリズムを使用して署名された証明書の置換
- MD5アルゴリズムで署名された証明書はサポートされない
- RSASSA-PSS署名アルゴリズムで署名された証明書の使用
親トピック: セキュリティの構成
SSL用のライブラリの構成
Apache HTTP Server用Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインは、HTTP/2プロトコルをサポートしています。TLS経由のHTTP/2では、Application Layer Protocol Negotiation (ALPN) TLS拡張を使用して接続を迅速に暗号化します。OracleのNZライブラリではALPN拡張がサポートされていないため、プロキシ・プラグインはOpenSSLライブラリを使用するように書き換えられています。したがって、既存のデプロイメントでOracle WebLogic Serverとの通信にSSLを使用するには、「環境変数の構成」で説明されている小さな変更が必要です。
ノート:
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインの現在の実装では、Apache SSLでの複数の証明書ファイルの使用はサポートされていません。この項には次のトピックが含まれます:
親トピック: プロキシ・プラグインでのSSLの使用
環境変数の構成
Oracle WebLogic Serverプロキシ・プラグインは、Oracleウォレットを使用して、秘密キー、ユーザー証明書チェーン、信頼できる証明書のリストなどのSSL情報を格納します。OpenSSL APIは、このようなウォレットの内容を読み取れません。したがって、ユーザー指定のウォレットの内容を、OpenSSL APIが読み取ることができる形式にエクスポートする必要があります。ウォレットの内容は、ファイル・システムにPEM形式のファイルとしてエクスポートされます。ユーザー指定のウォレットごとに、自動ログイン・ウォレットが存在する同じファイル・システム・パスに3つのファイルを作成できます:
key.PEM
: 秘密キーがウォレットに存在する場合のPEM形式の秘密キーを含むパスフレーズ保護ファイル。user.crt
: ユーザー証明書がウォレットに存在する場合のPEM形式のユーザー証明書。trusted_certs.crt
: PEM形式の信頼できる証明書チェーン。
前述したユーザー・ウォレットのエクスポートのために、export_wallet
という新しいプログラムがプロキシ・プラグインのzipファイルに含まれています。このプログラムのために、環境変数JAVA_HOME
およびPLUGINS_HOME
が設定されている必要があります。「インストールの前提条件」を参照してください。
親トピック: SSL用のライブラリの構成
一方向SSL用のプロキシ・プラグインの構成
一方向SSLを構成するには、次のステップに従ってください。
これらのステップでは、Oracle WebLogic Serverがインストールされているシステムでkeytoolコマンドを実行し、Oracle WebLogic Server 14.1.1.0プロキシ・プラグインがインストールされているシステムでorapki
コマンドを実行します。
ノート:
この項の例では、Oracle WebLogic ServerデモのCAを使用します。プロキシ・プラグインを本番環境で使用している場合は、プロキシ・プラグインおよびOracle WebLogic Serverに対して信頼できるCAが適切に構成されていることを確認してください。- SSL用にOracle WebLogic Serverを構成します。『Oracle WebLogic Serverセキュリティの管理』のSSLの構成に関する項を参照してください。
orapki
ユーティリティを使用してOracleウォレットを作成します。orapki wallet create -wallet mywallet -auto_login_only
『Oracle Fusion Middlewareの管理』のorapkiユーティリティを使用した証明書検証およびCRL管理に関する項を参照してください。
ノート:
ウォレットにアクセスできるのは、そのウォレットを作成したユーザーのみです(Windowsの場合はSYSTEMアカウント)。
Apache HTTP ServerはWindowsではSYSTEMアカウントとして、UNIXでは作成したユーザーとして実行されるため、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインには、通常これで十分です。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインを実行するユーザーがウォレットを作成したユーザー(またはWindowsの場合は
SYSTEM
アカウント)と異なる場合、ウォレットの作成後にコマンドcacls
(Windows)またはchmod
(UNIX)を実行して、ウォレットへのアクセス権をユーザーに付与する必要があります。たとえば:cacls <wallet_path>\cwallet.sso /e /g IUSR:R
- Oracle WebLogic Server信頼証明書をOracleウォレットにインポートします。
orapki wallet add -wallet mywallet -trusted_cert -cert <cert_file_name> -auto_login_only
- バックエンドのOracle WebLogic Serverインスタンスのバージョンが10.3.4以降の場合は、次のステップに従ってください。
- Oracle WebLogic Server管理コンソールにログインします。
- 「ドメイン構造」ペインで、「環境」ノードを開きます。
- Apache HTTP Serverからのリクエストをプロキシするサーバー・インスタンスがクラスタ内にある場合は、「クラスタ」を選択します。
- それ以外の場合は、「サーバー」を選択します。
- Apache HTTP Serverからリクエストをプロキシするサーバーまたはクラスタを選択します。
- 「構成: 一般」タブで、「詳細」セクションまでスクロール・ダウンし、展開します。
- 次のいずれかの操作を行います。
目的 選択オプション 一方向SSLの有効化
WebLogicプラグインの有効化
認証にクライアント証明書が使用される双方向SSLの有効化
クライアント証明書プロキシの有効化
クライアント証明書による双方向SSLの有効化
両方
- ステップ4bで「サーバー」を選択した場合は、Apache HTTP Serverからリクエストをプロキシするほかのサーバーに対して、ステップ3とステップ4を繰り返します。
- 「保存」をクリックします。
変更内容を有効にするには、サーバー・インスタンスを再起動する必要があります。
- ブラウザから
http://host:port/mywebapp/my.jsp
にリクエストを送信し、レスポンスを確認します。
親トピック: プロキシ・プラグインでのSSLの使用
プロキシ・プラグインとOracle WebLogic Serverの間の双方向SSLの構成
Oracle WebLogic Serverが双方向SSL用に構成されている場合、プロキシ・プラグインはユーザー証明書をOracle WebLogic Serverに転送します。Oracle WebLogic Serverがユーザー証明書を検証できるかぎり、双方向SSLを確立できます。
このステップでは、Oracle WebLogic Serverがインストールされているシステムでkeytool
コマンドを実行します。14.1.1.0プロキシ・プラグインがインストールされているシステムでorapki
コマンドを実行します。
親トピック: プロキシ・プラグインでのSSLの使用
MD5アルゴリズムを使用して署名された証明書の置換
SSLを使用してOracle WebLogic Serverに接続する場合は、ウォレットでMD5で署名された証明書リクエストまたは証明書がSHA-2署名証明書に置き換えられていることを確認します。置き換えられていない場合、サーバーの起動に失敗します。
この項には次のトピックが含まれます:
親トピック: プロキシ・プラグインでのSSLの使用
証明書の署名アルゴリズムの確認
orapki
コマンドで使用されるパラメータのリスト:
表4-1 コマンド・パラメータ
パラメータ | 説明 |
---|---|
|
ウォレットの場所を指定します。 |
|
証明書の識別名を指定します。 |
|
ツールがエクスポートした証明書を配置するディレクトリの場所を指定します。 |
親トピック: MD5アルゴリズムを使用して署名された証明書の置換
SHA-2アルゴリズムで署名された証明書を追加する新規ウォレットの作成
orapki
コマンドで使用されるパラメータのリスト:
表4-2 コマンド・パラメータ
パラメータ | 説明 |
---|---|
|
ウォレットの場所を指定します。 |
|
証明書の識別名を指定します。 |
|
信頼できる証明書であることを指定します。 |
|
ユーザー証明書であることを指定します。 |
|
ウォレットがパスワードで保護されている場合、ウォレット・パスワードを指定します。 |
|
ウォレットがauto_login_onlyかどうかを指定します。 |
|
作成する証明書の証明書リクエストの場所を指定します。 |
|
証明書のディレクトリの場所を指定します。 |
|
証明書のキーサイズを指定します。 |
|
ツールにルート証明書を作成させます。 |
|
現在の日付から数えて、ルート証明書が有効になる日数を指定します。 |
|
使用する署名アルゴリズムを指定します。 |
親トピック: MD5アルゴリズムを使用して署名された証明書の置換
既存の証明書のSHA-2署名付き証明書への置換
MD5またはSHA-2アルゴリズムで署名された証明書がウォレットに混在している場合は、MD5アルゴリズムで署名されている証明書のみを削除し、SHA-2アルゴリズムで署名されている証明書を保持できます。
${PLUGINS_HOME}/bin/orapki wallet display -wallet test_wallet
Oracle PKI Tool : Version 12.2.1.4.0 Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved. Requested Certificates: User Certificates: Subject: CN=localhost,O=FOR TESTING ONLY Trusted Certificates: Subject: CN=localhost,O=FOR TESTING ONLY Subject: CN=im_ca,OU=O,O=oracle,C=IN Subject: CN=root_ca,OU=O,O=oracle,C=IN Subject: CN=test_SHA2_signed_cert,OU=O,O=oracle,C=IN test_wallet contains following certificates signed with MD5 algorithm : Self-signed user certificate : Subject: CN=localhost,O=FOR TESTING ONLY Trusted certificates : Subject: CN=im_ca,OU=O,O=oracle,C=IN Subject: CN=root_ca,OU=O,O=oracle,C=IN
ユーザー証明書および信頼できる証明書がMD5で署名されている証明書リクエストを特定したら、次のステップを実行してウォレットから削除します:
- CA署名または自己署名付きユーザー証明書を削除します:
- 証明書を作成してウォレットにインポートします:
orapki
コマンドで使用されるパラメータのリスト:
表4-3 コマンド・パラメータ
パラメータ | 説明 |
---|---|
|
ウォレットの場所を指定します。 |
|
証明書の識別名を指定します。 |
|
信頼できる証明書であることを指定します。 |
|
ユーザー証明書であることを指定します。 |
|
証明書リクエストであることを指定します。 |
|
ウォレットがパスワードで保護されている場合、ウォレット・パスワードを指定します。 |
|
ウォレットがauto_login_onlyかどうかを指定します。 |
|
作成する証明書の証明書リクエストの場所を指定します。 |
|
証明書のディレクトリの場所を指定します。 |
|
証明書のキーサイズを指定します。 |
|
ツールにルート証明書を作成させます。 |
|
現在の日付から数えて、ルート証明書が有効になる日数を指定します。 |
|
使用する署名アルゴリズムを指定します。 |
親トピック: MD5アルゴリズムを使用して署名された証明書の置換
MD5アルゴリズムで署名された証明書はサポートされない
セキュリティが損なわれるため、MD5アルゴリズムを使用して署名された証明書は推奨されていません。
これらの証明書は、Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインでサポートされなくなりました。MD5アルゴリズムの証明書の使用を有効にしていた環境変数ORACLE_SSL_ALLOW_MD5_CERT_SIGNATURESはサポートされなくなりました。MD5証明書がOracleウォレットに存在する場合、プロキシ・プラグインは起動を拒否します。
親トピック: プロキシ・プラグインでのSSLの使用
RSASSA-PSS署名アルゴリズムで署名された証明書の使用
RSASSA-PSS署名アルゴリズムで署名された証明書は非常にセキュアであり、Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインでサポートされます。
WebサーバーとバックエンドOracle WebLogic Serverの間の通信にTLSv1.3を使用する場合、RSASSA-PSS署名アルゴリズムで署名された証明書、およびRSASSA-PSSアルゴリズムを使用して生成された秘密キーをデプロイできます。これに必要なJDKの最小バージョンは、Oracle JDK 11.0.9またはOracle JDK 8u261-b12です。これらのバージョンのJDKのSunPKCS11プロバイダは、PKCS#11 v2.40のサポートで更新されました。このバージョンでは、対応するPKCS11メカニズムが基礎となるPKCS11ライブラリによってサポートされている場合、RSASSA-PSS署名のサポートが追加されます。
Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインでは、RSASSA-PSSの署名アルゴリズムのRSA証明書をApache Webサーバーのユーザー証明書として構成できます。その後、Oracle WebLogic Serverでクライアント認証に証明書が必要な場合に、この証明書を使用してクライアント証明書として機能させることができます。
RSASSA-PSS署名付き証明書を使用するようにOracle WebLogic Serverを構成している場合、Oracle WebLogic Server 14.1.1.0.0プロキシ・プラグインは、SSLハンドシェイク中にこのような証明書をサポートします。
親トピック: プロキシ・プラグインでのSSLの使用
境界認証の構成
境界認証を使用して、プロキシ・プラグインを使用してアクセスされるOracle WebLogic Serverアプリケーションを保護します。
WebLogic IDアサーション・プロバイダは、Oracle WebLogic Serverアプリケーションにアクセスする外部システムからのトークンを認証します。これには、プロキシ・プラグインを介してOracle WebLogic Serverアプリケーションにアクセスするユーザーも含まれます。次のようにして、プロキシ・プラグインを安全に保護するIDアサーション・プロバイダを作成します:
『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のIDアサーション・プロバイダに関する項を参照してください。
親トピック: セキュリティの構成