SSL でのデフォルトのチェーン証明書構成

WebSphere® Application Server プロセスが初めて開始されると、Secure Sockets Layer (SSL) ランタイムは、SSL 構成で指定されたデフォルトの鍵ストアとトラストストアを初期化します。

プロファイル作成時に作成されたチェーン証明書には、デフォルトで 1 年の有効期限があります。 デフォルトのチェーン証明書への署名に使用されるデフォルトのルート証明書には、15 年の有効期限があります。 プロファイル作成時に、デフォルトおよびルート証明書の有効期限をカスタマイズできます。 このタイプのチェーン証明書には、トラストの確立に必要なことがルート証明書からの署名者のみであるという利点があります。 チェーン証明書が同じルート証明書で再生成される場合、トラストにそのルート署名者証明書を使用するクライアントはそのトラストを失効しません。

デフォルトの鍵ストアとトラストストアのプロパティー

WebSphere Application Server は、プロファイル作成時に key.p12 デフォルト鍵ストア・ファイルと trust.p12 デフォルト・トラストストア・ファイルを作成します。 デフォルトのチェーン証明書 も key.p12 ファイルに作成されます。 チェーン証明書のルート署名者または公開鍵は、key.p12 ファイルから抽出され、trust.p12 ファイルに追加されます。 プロセスの開始時にこれらのファイルが存在しない場合は、開始時に再作成されます。

DefaultKeyStore および DefaultTrustStore という接尾部が付いているため、鍵ストアとトラストストアのデフォルトを識別することができます。 また、ランタイム環境がデフォルトの鍵ストアとトラストストアのみを使用するように、SSL 構成で fileBased 属性を true に設定する必要があります。

[AIX Solaris HP-UX Linux Windows][IBM i]基本アプリケーション・サーバーでは、デフォルトの鍵ストアおよびトラストストアは、構成リポジトリーのノード・ディレクトリーに保管されます。 例えば、デフォルトの key.p12 および trust.p12 ストア は、AppSrv01 というプロファイル名、myhostNode01Cell という名前、 および myhostNode01 というノード名で作成されています。 鍵ストアとトラストストアは、次のディレクトリーにあります。
  • C:\WebSphere\AppServer\profiles\AppSrv01\config\cells\myhostNode01Cell \nodes\myhostNode01\key.p12
  • C:\WebSphere\AppServer\profiles\AppSrv01\config\cells\myhostNode01Cell \nodes\myhostNode01\trust.p12

WebSphere Application Serverによって生成されるすべてのデフォルト鍵ストアのデフォルト・パスワードは WebAS です。 よりセキュアな環境を確保するために、最初の構成後にこのデフォルト・パスワードを変更します。

デフォルトのチェーン証明書

デフォルトのチェーン証明書への署名に使用されるルート自己署名証明書と、サーバーのデフォルトのチェーン証明書は、プロファイル作成時に作成されます。
ルート証明書プロパティー:
情報
type self-signed
size 2048
署名アルゴリズム SHA256withRSA
SubjectDN cn=${hostname},ou=Root Certificate, ou=<node name>, ou= <cell name>,o=IBM,c=US
有効期間 15 年
デフォルトの証明書プロパティー:
情報
type chained (ルート証明書によって署名される)
size 2048
署名アルゴリズム SHA256withRSA
SubjectDN cn=${hostname},ou=<node name>,ou=<cell name>,o=IBM,c=US
有効期間 1 年
[9.0.5.5 以降]サブジェクト代替名 DNS SubjectDN の cn 値
[9.0.5.5 以降]拡張鍵使用 ServerAuth_Id(1.3.6.1.5.5.7.3.1)、ClientAuth_Id(1.3.6.1.5.5.7.3.2)

/config および /etc内の *.p12 ファイルを削除するだけで、別の情報を使用して証明書を再作成できます。 次のコード例にある 4 つのプロパティーを証明書に含めたい値に変更し、 その後でプロセスを再開します。 これにより、/config にあるサーバー証明書と /etc にあるクライアント証明書が別のものになります。

次のコード例の証明書プロパティーは ssl.client.props ファイル内にありますが、 サーバー構成内には存在しません。 ただし、管理コンソールでこれらの値をカスタム・セキュリティー・プロパティーとして追加することにより、サーバ ー構成で使用することができます。 「セキュリティー」 > 「グローバル・セキュリティー」y> 「カスタム・プロパティー」 をクリックして、以下のプロパティーを変更します。
com.ibm.ssl.defaultCertReqAlias=default_alias
com.ibm.ssl.defaultCertReqSubjectDN=cn=${hostname},ou=myhostNode01,ou=myhostNode01Cell,o=IBM,c=US
com.ibm.ssl.defaultCertReqDays=365
com.ibm.ssl.defaultCertReqKeySize=1024
com.ibm.ssl.rootCertSubjectDN=cn=${hostname},ou=Root Certificate, ou=myhostNode01,
ou=myhostNode01Cell,o=IBM,c=US
com.ibm.ssl.rootCertValidDays=7300
com.ibm.ssl.rootCertAlias=root
com.ibm.ssl.rootCertKeySize=1024
プロパティーを変更した後、以下のアクションを実行してください。
  1. デフォルトのチェーン証明書が入っている、アプリケーション・サーバーのデフォルトの key.p12 鍵ストア・ファイル と trust.p12 トラストストア・ファイルを削除 します。 鍵ストア・ファイルとトラストストア・ファイルが存在しない場合、 WebSphere Application Server は自動的にそれらを生成し、前述のプロパティー値を使用して新しいデフォルト証明書を作成します。
  2. 上にリストされたプロパティー値を使用して新規ルート証明書を再生成するため、 ルート鍵ストアである root-key.p12 ファイルを削除します。
  3. アプリケーション・サーバーを再始動します。

default_alias の値が既に存在している場合、ランタイムは _# を追加します。この番号記号 (#) は番号を表し、鍵ストア内で固有になるまで増分されます。 ${hostname} は、最初に作成されたホスト名に解決される変数です。 チェーン証明書のデフォルトの有効期限は、作成日から 1 年です。

ランタイムは、証明書の有効期限モニターを使用して、チェーン証明書の有効期限をモニターします。 これらのチェーン証明書は、有効期限しきい値 (通常は有効期限の 30 日前) 内にあるとき、署名者証明書とともに自動的に置き換えられます。 デフォルトの鍵サイズを 1024 ビットより大きくすることができるのは、Java™ ランタイム環境ポリシー・ファイルが制限されていない (つまり、エクスポートされていない) 場合のみです。 詳しくは、 SSL での証明書有効期限のモニターを参照してください。

新しいベース・アプリケーション・サーバーのプロセス用のデフォルト の鍵ストアとトラストストア構成

次のサンプル・コードは、ベース・アプリケーション・サーバーのデフォルトの SSL 構成を示しています。 デフォルトの鍵ストアとトラストストアのファイルへの参照は、強調表示されています。
<repertoire xmi:id="SSLConfig_1" alias="NodeDefaultSSLSettings" 
managementScope="ManagementScope_1">
<setting xmi:id="SecureSocketLayer_1" clientAuthentication="false" 
securityLevel="HIGH" enabledCiphers="" jsseProvider="IBMJSSE2" sslProtocol="SSL_TLS" 
keyStore="KeyStore_1" trustStore="KeyStore_2" trustManager="TrustManager_1" 
keyManager="KeyManager_1"/>
</repertoire>

デフォルト鍵ストア

次のサンプル・コードでは、デフォルト鍵ストアを 表す鍵ストア・オブジェクトは XML オブジェクトに類似しています。
<keyStores xmi:id="KeyStore_1" name="NodeDefaultKeyStore"
password="{xor}349dkckdd=" provider="IBMJCE" location="${WAS_INSTALL_ROOT}/config
/cells/myhostNode01Cell/nodes/myhostNode01/key.p12" type="PKCS12" fileBased="true" 
hostList="" initializeAtStartup="true" managementScope="ManagementScope_1"/>
NodeDefaultKeyStore 鍵ストアには、セキュアなエンドポイントの ID を表す個人証明書が含まれています。 鍵ストア参照は、${WAS_INSTALL_ROOT} 変数を使用できます。この変数はランタイムによって展開されます。 デフォルト鍵ストア・タイプ PKCS12 は、最も相互運用性の高いフォーマットであり、ほとんどのブラウザーにインポートできます。 myhostNode01Cell パスワードはエンコードされています。 次のコード・サンプルに示すように、管理有効範囲はどのサーバーのランタイムが鍵ストア構成をメモリーにロードするかを決定します。
<managementScopes xmi:id="ManagementScope_1" scopeName="
(cell):myhostNode01Cell:(node):myhostNode01" scopeType="node"/>

管理有効範囲が現在のプロセス有効範囲外にある、security.xml ファイルに保管された構成オブジェクトは、現行プロセスにはロードされません。 代わりに、管理有効範囲は myhostNode01 ノード内に含まれるサーバーによってロードされます。 その特定のノード上のアプリケーション ・サーバーは、鍵ストア構成を認識できます。

key.p12 ファイルの内容をリストしてチェーン証明書を表示する場合は、識別名 (DN) の共通名 (CN) が、常駐マシンのホスト名であることに注意してください。 このリスト表示により、URL 接続でホスト名を確認することができます。 さらに、カスタム・トラスト・マネージャーからホスト名を確認することもできます。 詳しくは、 Trust manager control of X.509 certificate trust decisionsを参照してください。

デフォルト鍵ストアの内容

以下のサンプル・コードは、keytool リスト内のデフォルトの key.p12 ファイルの内容を示しています。 [AIX Solaris HP-UX Linux Windows][IBM i]
keytool -list -v -keystore c:\WebSphere\AppServer\profile\AppSrv01\profiles\config
\cells\myhostNode01Cell\nodes\myhostNode01\key.p12 -storetype PKCS12 -storepass *****
Keystore type: PKCS12
Keystore provider: IBMJCE

Your keystore contains 1 entry

Alias name: default
Creation date: Dec 31, 1969
Entry type: keyEntry
Certificate chain length: 2
Certificate[1]:
Owner: CN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US
Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US
Serial number: 4e48f29aafea6
Valid from: 2/7/08 1:03 PM until: 2/6/09 1:03 PM
Certificate fingerprints:
  MD5:  DB:FE:65:DB:40:13:F4:48:A4:CE:2F:4F:60:A5:FF:2C
  SHA1: A1:D4:DD:4B:DE:7B:45:F7:4D:AA:6A:FC:92:38:78:53:7A:99:F1:DC
Certificate[2]:
Owner: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US
Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US
Serial number: 4e48e5fd4eae3
Valid from: 2/7/08 1:03 PM until: 2/2/28 1:03 PM
Certificate fingerprints:
  MD5:  A5:9B:05:78:CF:AB:89:94:C9:2E:F1:87:34:B3:FC:75
  SHA1: 43:74:B6:C7:FA:C1:0F:19:F2:51:2B:17:60:0D:34:93:55:BF:D5:D2

*******************************************
*******************************************

デフォルトの 別名と keyEntry 項目タイプは、この秘密鍵が公開鍵とともに保管されていることを示し、これが完全な個人証明書であることを表しています。 証明書はCN=myhost.austin.ibm.com, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US によって所有され、デフォルトのルート証明書 (CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US が所有) によって発行されます。デフォルトでは、証明書は作成日から 1 年間有効です。

さらに、署名者交換の状態によっては、証明書の指紋により、送信された証明書が変更されていないことが 保証されます。 証明書のハッシュ・アルゴリズム出力である指紋は、クライアント・サイドでの自動署名者交換中に WebSphere Application Server ランタイムによって表示されます。 クライアントの指紋は、サーバーに表示される指紋と一致する必要があります。 ランタイムは通常、SHA1 ハッシュ・アルゴリズムを使用して証明書の指紋を生成します。

デフォルトのトラストストア

次のサンプル・コードでは、鍵ストア・オブジェクトはデフォルトのトラストストア trust.p12 を表します。 トラストストアには、信頼に関する決 定を行う際に必要な、署名者証明書が含まれています。
<keyStores xmi:id="KeyStore_2" name="NodeDefaultTrustStore" 
password="{xor}349dkckdd=" provider="IBMJCE" location="${WAS_INSTALL_ROOT}
/config/cells/myhostNode01Cell/nodes/myhostNode01/trust.p12" type="PKCS12" 
fileBased="true" hostList="" initializeAtStartup="true" managementScope="ManagementScope_1"/>

デフォルト・トラストストアの内容

次のサンプル・コードは、鍵ツール・リストにある、デフォルトのトラストストア trust.p12 の内容を示しています。 サンプルのチェーン証明書では、デフォルトでルート証明書署名者がトラストストアに含まれています。 ルート署名者別名と trustedCertEntry 項目タイプは、この証明書が公開鍵であることを示しています。 秘密鍵はこのトラストストアに保管されません。 [AIX Solaris HP-UX Linux Windows][IBM i]
keytool -list -v -keystore c:\WebSphere\AppServer\profile\AppSrv01\profiles\config\cells\myhostNode01Cell
\nodes\myhostNode01\trust.p12 -storetype PKCS12 -storepass *****
Keystore type: PKCS12
Keystore provider: IBMJCE

Your keystore contains 2 entries

Alias name: root
Creation date: Dec 31, 1969
Entry type: trustedCertEntry

Owner: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US
Issuer: CN=myhost.austin.ibm.com, OU=Root Certificate, OU=myhostNode01Cell, OU=myhostNode01, O=IBM, C=US
Serial number: 4e48e5fd4eae3
Valid from: 2/7/08 1:03 PM until: 2/2/28 1:03 PM
Certificate fingerprints:
   MD5:  A5:9B:05:78:CF:AB:89:94:C9:2E:F1:87:34:B3:FC:75
   SHA1: 43:74:B6:C7:FA:C1:0F:19:F2:51:2B:17:60:0D:34:93:55:BF:D5:D2