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 に設定する必要があります。
ベース・アプリケーション・サーバーでは、デフォルトの鍵ストアとトラストストアは、 構成リポジトリーのノード・ディレクトリーに保管されます。 例えば、デフォルトの 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
${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell/nodes/myhostNode01/key.p12
${WAS_INSTALL_ROOT}/profile/default/config/cells/myhostNode01Cell/nodes/myhostNode01/trust.p12
WebSphere Application Server により生成される、 すべてのデフォルト鍵ストアのデフォルト・パスワードは、WebAS です。よりセキュアな環境を確保するために、最初の構成後にこのデフォルト・パスワードを変更します。
- デフォルトのチェーン証明書
- デフォルトのチェーン証明書への署名に使用されるルート自己署名証明書と、サーバーのデフォルトのチェーン証明書は、プロファイル作成時に作成されます。
ルート証明書プロパティー:
通知 値 type self-signed サイズ 2048 署名アルゴリズム SHA256withRSA SubjectDN cn=${hostname},ou=Root Certificate, ou=<node name>, ou= <cell name>,o=IBM,c=US 有効期間 15 年 デフォルトの証明書プロパティー:通知 値 type chained (ルート証明書によって署名される) サイズ 2048 署名アルゴリズム SHA256withRSA SubjectDN cn=${hostname},ou=<node name>,ou=<cell name>,o=IBM,c=US 有効期間 1 年 /config および /etc にある *.p12 ファイルを削除するだけで、異なる情報が記載された証明書を再作成できます。次のコード例にある 4 つのプロパティーを証明書に含めたい値に変更し、その後でプロセスを再開します。これにより、/config にあるサーバー証明書と /etc にあるクライアント証明書が別のものになります。
次のコード例の証明書プロパティーは ssl.client.props ファイル内にありますが、 サーバー構成内には存在しません。ただし、管理コンソールでこれらの値をカスタム・セキュリティー・プロパティーとして追加することにより、サーバ ー構成で使用することができます。 「セキュリティー」 > 「グローバル・セキュリティー」 > 「カスタム・プロパティー」をクリックして、以下のプロパティーを変更します。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
プロパティーを変更した後、以下のアクションを実行してください。- デフォルトのチェーン証明書が入っている、デプロイメント・マネージャーのデフォルトの key.p12 鍵ストア・ファイル と trust.p12 トラストストア・ファイルを削除 します。鍵ストア・ファイルおよびトラストストア・ファイルがない 場合、WebSphere Application Server が 自動的にそれらを生成し、上にリストされたプロパティー値を使用して新規のデフォルト証明書を 作成します。
- 上にリストされたプロパティー値を使用して新規ルート証明書を再生成するため、 ルート鍵ストアである root-key.p12 ファイルを削除します。
- デプロイメント・マネージャー、そのノード、およびすべてのサーバー を再始動します。
- ルート証明書を使用して、各ノードに
署名します。
- ノードが統合されていない場合、 addNode コマンドを使用して、各ノードをデプロイメント・マネージャーに統合します。ノードの デフォルト証明書は、セルのルート証明書を使用して再生成されます。
- ノードが統合されている場合、各ノードの 証明書は、セルのルート証明書を使用して更新されます。証明書の更新は、管理コンソール を使用するか、renewCertificate コマンドを使用して行うことができます。 詳しくは、「証明書の更新および renewCertificate コマンド」に 関する資料を参照してください。
default_alias の値が既に存在している場合、ランタイムは _# を追加します。この番号記号 (#) は番号を表し、鍵ストア内で固有になるまで増分されます。${hostname} は、最初に作成されたホスト名に解決される変数です。 チェーン証明書のデフォルトの有効期限は、作成日から 1 年です。
ランタイムは、証明書の有効期限モニターを使用して、チェーン証明書の有効期限をモニターします。これらのチェーン証明書は、有効期限しきい値 (通常は有効期限の 30 日前) 内にあるとき、署名者証明書とともに自動的に置き換えられます。 デフォルトの鍵サイズは、Java™ ランタイム環境ポリシー・ファイルが無制限である (エクスポートされない) 場合にのみ、1024 ビットより大きくすることができます。 詳しくは、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 接続でホスト名を確認することができます。さらに、カスタム・トラスト・マネージャーからホスト名を確認することもできます。 詳しくは、トラスト・マネージャーによる X.509 証明書の信頼についての決定の制御を参照してください。
- デフォルト鍵ストアの内容
- 次のサンプル・コードは、鍵ツール・リストのデフォルトの key.p12 ファイルの内容を示しています。
keytool -list -v -keystore c:¥WebSphere¥AppServer¥profile¥AppSrv01¥profiles¥config ¥cells¥myhostNode01Cell¥nodes¥myhostNode01¥key.p12 -storetype PKCS12 -storepass *****
${profile_root}¥config¥cells¥${cellname}¥nodes¥${nodename}> keytool -list -v -keystore ${WAS_INSTALL_ROOT}/profile/default/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 項目タイプは、この証明書が公開鍵であることを示しています。秘密鍵は、このトラストストアに保管されていません。
また、すべてのトラストストアにはデフォルトの DataPower 証明書が含まれます。
keytool -list -v -keystore c:¥WebSphere¥AppServer¥profile¥AppSrv01¥profiles¥config¥cells¥myhostNode01Cell ¥nodes¥myhostNode01¥trust.p12 -storetype PKCS12 -storepass *****
${profile_root}\config\cells\${cellname}\nodes\${nodename}> keytool -list -v -keystore ${WAS_INSTALL_ROOT}/profile/default/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 ******************************************* ******************************************* Alias name: datapower Creation date: Dec 31, 1969 Entry type: trustedCertEntry Owner: OU=Root CA, O="DataPower Technology, Inc.", C=US Issuer: OU=Root CA, O="DataPower Technology, Inc.", C=US Serial number: 0 Valid from: 6/11/03 1:23 PM until: 6/6/23 1:23 PM Certificate fingerprints: MD5: 18:AC:86:D1:9A:90:A2:AE:8B:28:F9:A8:75:C8:A9:DB SHA1: A9:BA:A4:B5:BC:26:2F:5D:2A:80:93:CA:BA:F4:31:05:F2:54:14:17