この章ではSSL自動化ツールについて説明します。
内容は次のとおりです。
Oracle SSL自動化ツールを使用すると、ドメイン固有のCA証明書を使用して、1つのドメイン内に複数のコンポーネントを構成できます。
デプロイメントにおいてSSLを有効にするタスクは、管理者にとって恐ろしく、厄介である場合があります。SSLを手動構成するには、一般的に管理者は、次のようないくつかの領域で専門知識がある必要があります。
テクノロジとしてのSSL
SSL構成および管理を実行するために使用可能な高度でないツール
セキュリティに関するベスト・プラクティス
Oracle SSL自動化ツールは、手動で行う手順の代替手段で、SSL構成を簡略化します。これにより、中央の自己署名CA証明書を生成し、その証明書を使用してコンポーネント・サーバーを構成し、複数のクライアントに対して信頼できる証明書としてCA証明書を提供できます。これにより、信頼できるネットワークがすべてのクライアントおよびサーバーに対して一貫した方法で確立され、外向きの接続とDMZ内の接続の両方でそれを使用できます。
SSL自動化ツールは、トラスト・モデルに基づいています。トラスト・モデルは、SSLドメインの概念を導入します。SSLドメインは、すべてのSSLコンポーネントが同じCA署名証明書でデプロイされるセキュリティ環境です。各SSLドメインは、これを自己署名ドメインCAと関連付けます。このSSLドメイン内のすべてのコンポーネントは、ドメインCAを暗黙的に信頼します。また、このドメインCAは、そのSSLドメイン内にデプロイされたサーバー・コンポーネント用にSSLサーバー証明書を生成できます。あるSSLドメイン(A)のサーバー・コンポーネントが別のSSLドメイン(B)のクライアント・コンポーネントに信頼される必要がある場合、SSLドメイン(B)のクライアント・コンポーネントは、(A)からのドメインCA証明書のみをインポートして信頼する必要があります。
このツールは、一連のシェル・スクリプト(3つのメインSSLスクリプトといくつかのコンポーネント固有のスクリプト)から構成されています。
表7-1に、メイン・スクリプトをリストします。
表7-1 メイン・スクリプト
スクリプト | 機能 |
---|---|
|
CA証明書を生成し、これをLDAPディレクトリに格納します。 |
|
サーバーを構成します。 |
|
クライアントを構成します。 |
サーバー構成スクリプトおよびクライアント構成スクリプトは、メイン・スクリプトを起動するときにコマンドラインで指定したオプションの値に応じて、コンポーネント固有のスクリプトを起動します。
これらのスクリプトは、デプロイメントにあるLDAPポリシー・ストアを使用して、SSLドメインCAウォレットを集中的に格納します。これらのSSLドメインCAウォレットは、LDAPアクセス・コントロールによって保護されます。アクセス権は、SSL管理者グループのメンバーのみに付与されます。スクリプトを実行するには、このグループのメンバーである必要があります。
SSL自動化ツールには、次の利点があります。
これを使用すると、管理者が使用する一貫性のあるインタフェース・セットが提供されます。
これを使用すると、自己署名証明書の伝播がなくなり、関連するトラスト・ポイントの数が低減されます。トラスト・ポイントはSSLドメインCAに制限されています。
これを使用すると、適切に認証されたSSL管理者のみがSSL関連の管理タスクを実行できるようになります。
これを使用すると、基本的な変更を行う必要なく、コンポーネントを徐々に追加する機能がサポートされます。
このツールを使用する前に、この項で説明するタスクを実行したことを確認します。
スクリプトを起動してOracle Fusion Middleware環境のコンポーネントでSSLを構成するには、その前にOracle Fusion Middleware環境のすべてのコンポーネントが稼働中である必要があります。
コンポーネントがWindowsプラットフォームで稼働中の場合、スクリプトを使用する前にhttp://www.cygwin.com
からCygwinを取得し、インストールする必要があります。CygwinシェルでORACLE_HOME
環境変数を設定します。次に例を示します。
export ORACLE_HOME='C:/rc8/fmwhome/Oracle_Home/'
SSLスクリプトを起動する前に、表7-2および表7-3にリストされている次に変数の値があることを確認します。
表7-2 SSL自動化ツールのドメイン・レベルの情報変数
変数 |
---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CA証明書生成スクリプトSSLGenCA.sh
を起動して、SSLドメインを初期化して作成し、SSLドメインCAを生成します。SSLドメイン全体に対して、スクリプトを1回だけ実行します。これを再び実行すると、新しく生成されるCAウォレットを使用してすべてのサーバーおよびクライアントを構成する必要があります。SSLドメインは、すべてのSSLコンポーネントが同じCA署名証明書を使用してデプロイされるセキュリティ環境です。
Oracle Fusion Middlewareインストール用のデフォルト環境で設定されたシェルを入力します。
このスクリプトを実行するには、次の情報が必要です。
デプロイメントで使用するLDAPディレクトリの接続情報(ホストとポート)
そのLDAPディレクトリへのアクセスを可能にする管理者資格証明
SSLドメインの名前
次のコマンドを実行します。
$ORACLE_COMMON_HOME/oracle_common/bin/SSLGenCA.sh
プロンプトが表示されたら情報を入力します。
このスクリプトでは、次のタスクが実行されます。
ドメインで使用するデモの署名CAウォレットを作成します。
CAウォレットからデモの公開CA証明書を抽出します。
ウォレットおよび証明書をLDAPにアップロードし、これらをエントリcn=demoCA、
Deployment_SSL_Domain
に格納します。
LDAPにアクセス・グループcn=sslAdmins, cn=demoCA,
Deployment_SSL_Domain
を作成し、そのグループ管理権限を親コンテナに付与します。他のすべてのエンティティは、アクセスを拒否されます。(アクセスを付与するには、ユーザーをこのグループに追加します。)
これでデモのCA証明書は、匿名のユーザーまたは認証済ユーザーによってダウンロードできます。
デモのCAウォレットのパスワードは、今後の使用のためにわかりにくいウォレットにローカルに格納されます。このパスは、$ORACLE_HOME/credCA/castore
です。
管理者は、このウォレットを保護し、SSL管理者のみがこれを読み込むことができるようにする必要があります。
この例は、SSLGenCA.shを実行し、新しいCAウォレットを生成し、これをポリシー・ストア(LDAPサーバー)に格納する方法を示します。
$ SSLGenCA.sh SSL Certificate Authority Generation Script: Release 11.1.1.4.0 - Production Copyright (c) 2010 Oracle. All rights reserved. ************************************************************************ *********** This tool will generate a self-signed CA wallet ************ *********** and store it in a central LDAP directory ************ *********** for IDM and FA SSL setup and provisioning ************ ************************************************************************ >>>Enter the LDAP hostname [adc2100651.example.com]: >>>Enter the LDAP port [3060]: 20040 >>>Enter the admin user [cn=orcladmin] >>>Enter password for cn=orcladmin: >>>Enter the LDAP sslDomain where your CA will be stored [idm]: >>>Enter a password to protect your CA wallet: >>>Enter confirmed password for your CA wallet: Generate a new CA Wallet... Create SSL Domains Container for cn=idm,cn=sslDomains... Storing the newly generated CA to the LDAP... Setup ACL to protect the CA wallet... The newly generated CA is stored in LDAP entry cn=demoCA,cn=idm,cn=sslDomains successfully
SSLServerConfig.sh
スクリプトを起動してサーバーを構成します。このスクリプトは、SSLドメインCAを使用し、サーバー証明書を生成します。次に、このスクリプトは、制御をコンポーネント固有の構成スクリプトに渡します。この構成スクリプトは、生成されたサーバー証明書を取得し、SSL接続を受け入れるようにコンポーネントを構成します。
このスクリプトを実行するには、次の情報が必要です。
デプロイメントで使用するLDAPディレクトリの接続情報(ホストとポート)
そのLDAPディレクトリへのアクセスを可能にする管理者資格証明
サーバー名。これは、WebLogic管理サーバーまたは管理対象サーバーのいずれかです。
このスクリプトを起動する前に、Oracle Fusion Middlewareインストール用のデフォルト環境で設定されたシェルを入力します。このスクリプトの場所は、$ORACLE_COMMON_HOME/oracle_common/bin/SSLServerConfig.sh
です。このスクリプトの構文を次に示します。
SSLServerConfig.sh -component [oid|ovd|oam|wls] [-v]
唯一のコンポーネントを指定します。指定したコンポーネントに応じて、SSLServerConfig.sh
はコンポーネント固有のスクリプトを起動します。コンポーネント固有サーバーのスクリプトの名前の形式は、COMPONENT_NAME
_SSL_Server_Config.sh
です。
コンポーネント・オプションwls
を指定した場合、スクリプトは、名前付きのサーバーのすべてのJava EEコンポーネントを構成します。Java EEコンポーネントには、Oracle Identity Navigator、Oracle Access Manager 11g、Oracle Identity Manager、およびOracle Identity Federationが含まれます。
表7-4 SSLServerConfig.shのコンポーネント・オプション
コンポーネント・オプション | 起動されるスクリプト | 構成されるコンポーネント |
---|---|---|
|
|
Oracle WebLogic ServerおよびJava EEのコンポーネント |
プロンプトが表示されたら情報を入力します。
このスクリプトでは、次のタスクが実行されます。
第7.3項で生成されたデモの署名CAをダウンロードし、これを$ORACLE_HOME/rootCA
に格納します。
必要に応じて、コンポーネント固有スクリプトCOMPONENT_NAME
_SSL_Server_Config.sh
を実行します。
このコンポーネント固有スクリプトは、次のタスクを実行します。
デモの署名CAウォレットに基づいて、サーバー証明書を生成します。
証明書をコンポーネント固有のウォレット/キーストアにインポートします。
コンポーネント固有のウォレット/キーストアにある新しいサーバー証明書に基づいて、SSLサーバー認証のコンポーネント・インスタンスを構成します。
$ ./SSLServerConfig.sh -component wls Server SSL Automation Script: Release 11.1.1.4.0 - Production Copyright (c) 2010 Oracle. All rights reserved. Downloading the CA wallet from the central LDAP location... >>>Enter the LDAP Hostname [adc2100651.example.com]: >>>Enter the LDAP port [3060]: 16468 >>>Enter an admin user DN [cn=orcladmin] >>>Enter password for cn=orcladmin: >>>Enter the sslDomain for the CA [idm]: >>>Enter a password to protect your SSL wallet/keystore: >>>Enter confirmed password for your SSL wallet/keystore: >>>Enter password for the CA wallet: >>>Searching the LDAP for the CA usercertificate ... Importing the CA certifcate into trust stores... >>>Searching the LDAP for the CA userpkcs12 ... Invoking Weblogic SSL Server Configuration Script... Enter attribute values for your certificate DN >>>Country Name 2 letter code [US]: >>>State or Province Name [California]: >>>Locality Name(eg, city) []:Belmont >>>Organization Name (eg, company) [mycompany]:Oracle >>>Organizational Unit Name (eg, section) [wls-20101123115644]:wls-admin >>>Common Name (eg, hostName.domainName.com) [adc2100651.example.com]: The subject DN is cn=adc2100651.example.com,ou=wls-admin,O=Oracle,l=Belmont,st=California,c=US >>>Import the existing CA at /mw784/im7335/rootCA/cacert.der into keystore... >>>Import the server certificate at /mw784/im7335/rootCA/keystores/wls/cert.txt into kstore... Configuring SSL for your WLS server instance... >>>Enter your WLS domain home directory: /mw784/user_projects/domains/imdomain8017 >>>Enter your WLS server instance name [AdminServer] Enter SSL Listen Port: [7002] 7778 >>>Enter weblogic admin port: [7001] 19249 >>>Enter weblogic admin user: [weblogic] >>>Enter password for weblogic: >>>Enter your keystore name [identity.jks]: id.jks /mw784/im7335/rootCA/keystores/wls/mw784/user_projects/domains/imdomain8017/keystores/id.jks Configuring WLS AdminServer ... Running /mw784/im7335/common/bin/wlst.sh /mw784/im7335/rootCA/keystores/wls/wlssvr.py... Your WLS server has been set up successfully
スクリプトSSLClientConfig.shを起動してクライアントを構成します。このスクリプトは、SSLドメインCAを取得し、次に制御をコンポーネント固有のスクリプトに渡してこれをインポートし、必要な追加の構成手順を実行します。
このスクリプトを実行するには、次の情報が必要です。
デプロイメントで使用するLDAPディレクトリの接続情報(ホストとポート)
そのLDAPディレクトリへのアクセスを可能にする管理者資格証明
SSLデプロイメントの名前(idm
、fmw
など)
このスクリプトを起動する前に、Oracle Fusion Middlewareインストール用のデフォルト環境で設定されたシェルを入力します。このスクリプトの場所は、$ORACLE_COMMON_HOME/oracle_common/bin/SSLClientConfig.sh
です。このスクリプトの構文を次に示します。
SSLClientConfig.sh -component [cacert|wls|webgate] [-v]
指定した-component
オプションに応じて、SSLClientConfig.sh
は、表7-5にリストされているコンポーネント・スクリプトを起動する場合があります。コンポーネント固有クライアントの名前の形式は、COMPONENT_NAME
_SSL_Client_Config.sh
です。
表7-5 SSLClientConfig.shのコンポーネント・オプション
コンポーネント・オプション | 起動されるスクリプト | 構成されるコンポーネント |
---|---|---|
|
なし |
その他のSSLクライアント |
|
|
Oracle WebLogicクライアントおよびJava EEのコンポーネント |
|
|
Oracle Access Manager WebGate |
プロンプトが表示されたら情報を入力します。
このクライアント・スクリプトは、次のタスクを実行します。
SSLドメインのLDAPサーバーからCA証明書またはウォレットをダウンロードします。
Oracle Identity ManagerクライアントまたはOracle Access Managerクライアント用に、関連するJavaトラスト・ストア、Oracleウォレット、またはJavaキーストアを作成します。
関連するトラスト・ストア、ウォレット、またはキーストアに、信頼できる証明書として署名CA証明書をインポートします。
WebGateクライアントの場合、秘密証明書、クライアント証明書、およびCA署名証明書によって完全なJavaキーストアが作成されます。
共通のトラスト・ストアまたはウォレットのみが必要なその他のクライアント・コンポーネントの場合、このスクリプトは、CA証明書を新しく生成されたトラスト・ストアにインポートします。
$ ./SSLClientConfig.sh -component cacert SSL Automation Script: Release 11.1.1.4.0 - Production Copyright (c) 2010 Oracle. All rights reserved. Downloading the CA certificate from a central LDAP location Creating a common trust store in JKS and Oracle Wallet formats ... Configuring SSL clients with the common trust store... Make sure that your LDAP server is currently up and running. Downloading the CA certificate from the LDAP server... >>> Enter the LDAP hostname [adc2100651.example.com]: Enter the LDAP port: [3060]? 16468 >>> Enter your LDAP user [cn=orcladmin]: >>> Enter password for cn=orcladmin: >>> Enter the sslDomain for the CA [idm]: Searching the LDAP for the CA usercertificate ... Importing the CA certifcate into trust stores... >>> The common trust store in JKS format is located at /mw784/im7335/rootCA/keystores/tmp/trust.jks >>> The common trust store in Oracle wallet format is located at /mw784/im7335/rootCA/keystores/tmp/ewallet.p12 Generate trust store for the CA cert at cn=idm,cn=sslDomains >>> Enter a password to protect your truststore: >>> Enter confirmed password for your truststore: Updating the existing /mw784/im7335/rootCA/keystores/common/trust.jks... Importing the CA certifcate into trust stores... >>> The common trust store in JKS format is located at /mw784/im7335/rootCA/keystores/common/trust.jks >>> The common trust store in Oracle wallet format is located at /mw784/im7335/rootCA/keystores/common/ewallet.p12
$ ./SSLClientConfig.sh -component wls SSL Automation Script: Release 11.1.1.4.0 - Production Copyright (c) 2010 Oracle. All rights reserved. Downloading the CA certificate from a central LDAP location Creating a common trust store in JKS and Oracle Wallet formats ... Configuring SSL clients with the common trust store... Make sure that your LDAP server is currently up and running. Downloading the CA certificate from the LDAP server... >>> Enter the LDAP hostname [adc2100651.example.com]: >>> Enter the LDAP port: [3060]? 16468 >>> Enter your LDAP user [cn=orcladmin]: >>> Enter password for cn=orcladmin: >>> Enter the sslDomain for the CA [idm]: >>> Searching the LDAP for the CA usercertificate ... Importing the CA certifcate into trust stores... >>> The common trust store in JKS format is located at /mw784/im7335/rootCA/keystores/tmp/trust.jks >>> The common trust store in Oracle wallet format is located at /mw784/im7335/rootCA/keystores/tmp/ewallet.p12 Invoking Weblogic SSL Client Configuration Script... >>> Enter a password to protect your truststore: >>> Enter confirmed password for your truststore: Updating the existing /mw784/im7335/rootCA/keystores/wls/trust.jks... Importing the CA certifcate into trust stores... >>> The common trust store in JKS format is located at /mw784/im7335/rootCA/keystores/wls/trust.jks >>> The common trust store in Oracle wallet format is located at /mw784/im7335/rootCA/keystores/wls/ewallet.p12 cat: /mw784/im7335/rootCA/cacert_tmp.txt: No such file or directory Configuring SSL Trust for your WLS server instance... >>> Enter your trust store name: [trust.jks]mytrust.jkds >>> Enter your WLS domain home directory: /mw784/user_projects/domains/imdomain8017 >>> Enter your WLS server instance name [AdminServer] >>> Enter weblogic admin port: [7001] 19249 >>> Enter weblogic admin user: [weblogic] >>> Enter password for weblogic: >>> Copy /mw784/im7335/rootCA/keystores/wls/trust.jks to /mw784/user_projects/domains/imdomain8017/servers/AdminServer/keystores/mytrust.jkds... Configuring WLS AdminServer ... Running /mw784/im7335/common/bin/wlst.sh /mw784/im7335/rootCA/keystores/wls/wlscln.py... Your WLS server has been set up successfully