5 セキュリティの構成
プラグインでのSSLの使用
Secure Sockets Layer (SSL)プロトコルを使用することで、プラグインとOracle WebLogic Serverとの間の接続を保護できます。SSLプロトコルによって、プラグインとWebLogic Serverとの間で渡されるデータの機密性と整合性が保持されます。
プラグインでは、プラグインとWebLogic Serverとの間の接続の保護にSSLを使用するかどうかの決定に、HTTPリクエストで指定された(通常はブラウザによって指定)トランスポート・プロトコル(HTTPまたはHTTPS)を使用しません。つまり、プラグインは、(通常はブラウザからの)HTTPリクエストでHTTPS (SSL)が使用されるかどうかには一切依存しません。
かわりに、プラグインでは、「Webサーバー・プラグインのSSLパラメータ」で説明されているように、SSLをいつ使用をするかを決定するため、プラグインに対して次のように構成したSSLパラメータを使用します。
-
WebLogicSSLVersion
—プラグインとWebLogic Serverの間の通信に使用するSSLプロトコル・バージョンを指定します。 -
WLSSLWallet
- バージョン12c (12.2.1.4.0)のプラグインでは、SSL構成情報の格納にOracleウォレットが使用されます。ウォレットを構成するには、SSL構成パラメータWLSSLWallet
を使用します。この目的のために、プラグインのディストリビューション内にorapkiユーティリティが用意されています。orapkiユーティリティでは、ウォレット、証明書失効リストなど、公開キー・インフラストラクチャ(PKI)の要素をコマンド行で管理するため、実行するタスクをスクリプトに組み込むことができます。これを使用して、PKIを保守するルーチン・タスクの多くを自動化できます。「証明書の検証とCRL管理にorapkiユーティリティを使用する方法」を参照してください。
-
SecureProxy
-SecureProxy
パラメータによって、SSLを有効にするかどうかを決定します。
ノート:
現在のリリースに有効なセキュリティ・プロトコルおよび暗号の詳細は、『Oracle HTTP Serverの管理』のSSLCipherSuiteに関する項およびSSLProtocolに関する項を参照してください。
双方向SSLについては、Oracle WebLogic Serverが双方向SSLを使用するように構成されている場合にクライアント証明書をリクエストすると、プラグイン(SSLクライアント)によって自動的に双方向SSLが使用されます。
クライアント証明書がリクエストされない場合は、デフォルトでプラグインは一方向SSLになります。
ノート:
Apacheプラグイン(Oracle HTTP Serverを含む)と同じシステム上にOracle Fusion Middleware 12c (12.2.1.4.0)製品がインストールされている場合は、ORACLE_HOME変数が有効なインストール環境を指している必要があり、そうでない場合は、プラグインによるSSLの初期化が失敗します。
たとえば、製品が正常に削除されなかったためにORACLE_HOMEが無効になっている場合、プラグインによるSSLの初期化は失敗します。
この項の内容は次のとおりです。
SSL用のライブラリの構成
プラグインでは、SSLをサポートするためにOracleライブラリ(NZ)が使用されます。ライブラリはサイズが大きいため、SSLの使用が必要な場合のみロードされます。lib/*.so*にあるライブラリ・ファイルは、必ず、プラグインによる動的なロードが可能な適切な場所に配置する必要があります。
Apache HTTPサーバー用プラグインのライブラリを構成するには、次のような方法があります。
-
Windows: .dllファイルを含む
lib
ディレクトリをPATH変数で指定するか、*.dllファイルをbin
ディレクトリにコピーします。 -
UNIX: ライブラリを含むフォルダを指すようLD_LIBRARY_PATHを設定するか、ライブラリを
lib
ディレクトリにコピーします。
PATH
変数(Windows)またはLD_LIBRARY_PATH 変数(UNIX)を更新するのではなく、ライブラリをコピーした場合は、新しいバージョンのプラグインをインストールするたびにライブラリをコピーしなおす必要があります。
一方向SSL用のプラグインの構成
一方向SSLを構成するには、次のステップに従ってください。
このステップでは、WebLogic Serverがインストールされているシステム上でkeytoolコマンドを実行し、バージョン12c (12.2.1.4.0)のプラグインがインストールされているシステム上でorapkiコマンドを実行します。
ノート:
この項で示す例には、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アカウント)。
通常、WindowsではSYSTEMアカウント、UNIXではウォレットの作成ユーザーとして実行されるため、Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインについてはこれで十分です。ただしIISの場合は、デフォルト・ユーザーがIUSR_<Machine_Name> (IIS6.0以下)またはIUSR (IIS7.0以上)であるため、ウォレットは機能しません。
Apache HTTP Server用Oracle WebLogic Serverプロキシ・プラグインまたはMicrosoft IIS Web Server用Oracle WebLogic Serverプロキシ・プラグイン12c (12.2.1.4.0)を実行するユーザーが、ウォレットを作成するユーザー(Windowsの場合はSYSTEMアカウント)と異なる場合には、ウォレットの作成後に
cacls
コマンド(Windows)またはchmod
コマンド(UNIX)を実行してユーザーにそのウォレットへのアクセス権を付与する必要があります。次にその例を示します。cacls <wallet_path>\cwallet.sso /e /g IUSR:R
-
OracleウォレットにWLS信頼証明書をインポートします。
orapki wallet add -wallet mywallet -trusted_cert -cert <cert_file_name> -auto_login_only
-
Webサーバーの構成ファイルを次のように構成します。
-
Oracle HTTP Serverの場合、
mod_wl_ohs
.conf
ファイルを次のように編集します。<IfModule mod_weblogic.c> WebLogicHost host WebLogicPort port SecureProxy ON WLSSLWallet path_to_wallet </IfModule>
-
Microsoft IISの場合は、次のように
iisproxy.ini
ファイルを編集します。WebLogicHost=host WebLogicPort=port SecureProxy=ON WLSSLWallet=path_to_wallet
これらの例で使用されているパラメータの詳細は、「Webサーバー・プラグインのパラメータ」を参照してください。
-
-
バックエンドのOracle WebLogic Serverインスタンスのバージョンが10.3.4以降の場合は、次のステップに従ってください。
-
Oracle WebLogic Server管理コンソールにログインします。
-
「ドメイン構造」ペインで、「環境」ノードを開きます。
-
Oracle HTTP Serverからリクエストをプロキシするサーバー・インスタンスがクラスタにある場合は、「クラスタ」を選択します。
-
それ以外の場合は、「サーバー」を選択します。
-
-
Oracle HTTP Serverからリクエストをプロキシするサーバーまたはクラスタを選択します。
-
「構成」: 「一般」タブで、「詳細」セクションまでスクロール・ダウンして開きます。
-
次のいずれかの操作を行います。
目的 選択オプション 一方向SSLの有効化
WebLogicプラグインの有効化
認証にクライアント証明書が使用される双方向SSLの有効化
クライアント証明書プロキシの有効化
クライアント証明書による双方向SSLの有効化
両方
-
ステップ2で「サーバー」を選択した場合は、Oracle HTTP Serverからのリクエストをプロキシするその他のサーバーに対してステップ3とステップ4を繰り返します。
-
「保存」をクリックします。
変更内容を有効にするには、サーバー・インスタンスを再起動する必要があります。
-
-
ブラウザから
http://host:port/mywebapp/my
.jspにリクエストを送信し、レスポンスを確認します。
プラグインとOracle WebLogic Serverとの間の双方向SSLの構成
Oracle WebLogic Serverを双方向SSL用に構成してある場合は、プラグインによってユーザー証明書がWebLogic Serverに転送されます。WebLogic Serverがユーザー証明書を確認できれば、双方向SSLを確立できます。
「一方向SSL用のプラグインの構成」で説明されているステップに加えて、次のステップも実行してください。
このステップでは、WebLogic Serverがインストールされているシステム上でkeytoolコマンドを実行します。また、バージョン12c (12.2.1.4.0)プラグインがインストールされているシステム上でorapkiコマンドを実行します。
MD5アルゴリズムを使用して署名された証明書の置換
SSLを使用してWebLogic Serverに接続する場合、MD5を使用して署名された証明書リクエストまたは証明書がウォレット内のSHA-2で署名された証明書で置換されていることを確認します。これ以外の場合、サーバーは起動に失敗します。
証明書の署名アルゴリズムの確認
証明書の署名アルゴリズムを確認するには:
-
証明書を識別名で検索するには、次のコマンドを使用します
${PLUGIN_HOME}/bin/orapki wallet display -wallet <wallet__location>
-
ウォレットで使用可能な証明書をエクスポートします
${PLUGIN_HOME}/bin/orapki wallet export -wallet <wallet_Location> -dn 'DN_string' -cert <certificate_file>
-
keytoolを使用して、
<certificate_file>
を署名する際に使用する署名アルゴリズムを確認します$JAVA_HOME/bin/keytool -printcert -file <certificate_file>
MD5アルゴリズムを使用して署名された証明書リクエストまたは証明書の削除
-
MD5アルゴリズムを使用して署名されたユーザー証明書を削除するには、次のようにします
${PLUGIN_HOME}/bin/orapki wallet remove -wallet <wallet_location> -dn 'DN_string' -user_cert [-pwd <pwd>] | [-auto_login_only]
-
信頼性がありリクエストされた証明書リストで使用可能な自己署名証明書を削除するには:
${PLUGIN_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -trusted_cert [-pwd <pwd>] | [-auto_login_only] ${PLUGIN_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -cert_req [-pwd <pwd>] | [-auto_login_only]
-
MD5アルゴリズムを使用して署名された信頼性のある証明書を削除するには、次のようにします
${PLUGIN_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -trusted_cert [-pwd < pwd >] | [-auto_login_only]
-
MD5アルゴリズムを使用して署名された証明書リクエストを削除するには、次のようにします
${PLUGIN_HOME}/bin/orapki wallet remove -wallet < wallet_location > -dn 'DN_string' -cert_req [-pwd <pwd>] | [-auto_login_only]
SHA-2アルゴリズムを使用して署名された自己署名ユーザー証明書の追加
次のコマンドを使用して、MD5アルゴリズムによって署名された自己署名ユーザー証明書を、ウォレットのSHA-2アルゴリズムを使用して署名された自己署名証明書で追加します。
${PLUGIN_HOME}
/bin/orapki wallet add -wallet <wallet_Location>
-dn 'DN_String'
keysize 2048 -sign_alg sha256 -self_signed
-validity 9125 [-pwd <pwd>] | [-auto_login_only]
MD5アルゴリズムを使用した既存の認証局の署名済ユーザー証明書の更新
認証局に連絡してSHA-2署名アルゴリズムを使用して署名されたユーザー証明書を取得し、これを既存のユーザー証明書と置換します。
${PLUGIN_HOME}/bin/orapki -wallet add -wallet <wallet_Location> -user_cert -cert <certificate_file> [-pwd <pwd> ] | [-auto_login_only]
MD5アルゴリズムを使用して署名された既存の信頼性のある証明書の更新
ウォレットにインポートされたMD5署名アルゴリズムを使用して署名されている信頼性のある証明書がある場合、SHA-2署名アルゴリズムを使用するように、対応するバックエンドWebLogic Serverの証明書を更新します。更新後、ウォレット内の信頼性のあるMD5証明書を更新済証明書に置換します。
${PLUGIN_HOME}/bin/orapki -wallet add -wallet <wallet_Location> -trusted_cert -cert <certificate_file> [-pwd <pwd> ] | [-auto_login_only]
MD5アルゴリズムを使用して署名された証明書のサポートの有効化
ノート:
セキュリティが損なわれるため、MD5アルゴリズムを使用して署名された証明書は推奨されていません。MD5アルゴリズムを使用して署名された証明書の使用を続行するには、ORACLE_SSL_ALLOW_MD5_CERT_SIGNATURES=1
環境変数を設定します。
プラグイン内のenvironment.variable
を設定します:
-
Oracle HTTP Serverプラグイン:
environment.ORACLE_SSL_ALLOW_MD5_CERT_SIGNATURES=1
をDOMAIN_HOME/config/fmwconfig/components/OHS/instances/instanceName/ohs.plugin.nodemanger.properties
に追加します -
Apacheプラグイン:
export
ORACLE_SSL_ALLOW_MD5_CERT_SIGNATURES=1
を$APACHE_HOME/bin/envvars
に追加します。 -
IISプラグイン:
ORACLE_SSL_ALLOW_MD5_CERT_SIGNATURES=1
をシステム環境変数に追加します。
境界認証の構成
プラグインを使用してアクセスされる、WebLogic Serverアプリケーションを保護するには、境界認証を使用します。
WebLogic IDアサーション・プロバイダでは、WebLogic Serverアプリケーションにアクセスする外部システム(プラグインを介してWebLogic Serverアプリケーションにアクセスするユーザーを含む)からのトークンを認証します。次の手順に従って、プラグインを安全に保護するIDアサーション・プロバイダを作成します。
『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のIDアサーション・プロバイダに関する項を参照してください。