SSL での証明書有効期限のモニター
SSL 証明書は、サーバーにとって、他のサーバーとの間でやり取りするデータのセキュリティーを保持するために重要です。SSL 証明書の使用には、それらの証明書を最新に保つという責任が伴います。証明書有効期限のモニター管理タスクは、セキュリティー構成内のすべての鍵ストアを循環するようにスケジュールされたタスクであり、有効期限が切れた証明書、有効期限のしきい値内にある証明書、および事前通知期間内にある証明書について報告します。
- 証明書モニターの構成
- 証明書モニター構成設定は、管理コンソールで「証明書有効期限の管理」パネルでは以下の機能を実行できます。
- 「検査を使用可能にする」チェック・ボックスで、証明書モニター検査を使用可能または使用不可にします。証明書モニター検査はデフォルトで使用可能にされます。
- 「有効期限置換しきい値」というラベルの付いたボックスに、有効期限しきい値を設定します。有効期限置換しきい値は、証明書有効期限の何日前から証明書を置換できるのかを示す日数であり、デフォルト値は 60 日です。
- 「証明書事前通知しきい値」というラベルの付いたボックスに、事前通知しきい値を設定します。証明書事前通知しきい値は、証明書置換が可能になる日付を、有効期限しきい値の何日前から証明書モニターが報告し始めるのかを示す日数です。
- 「有効期限が切れる自己署名証明書およびチェーン証明書を自動的に置換する」ボックスが選択されている場合、有効期限が切れた証明書または有効期限しきい値内の証明書を新しい証明書と置き換えます。このボックスは、デフォルトで選択されます。このオプションが選択されていない場合、証明書有効期限モニターは、証明書の有効期限が切れたか、証明書が有効期限しきい値内であることを報告するだけで、証明書の置換は行いません。
- 「有効期限が切れる証明書および署名者を置換後に削除する」ボックスを選択することによって、置き換えられた後の証明書を削除します。このボックスは、デフォルトで選択されます。
- 「有効期限検査」フィールドに、証明書有効期限モニターの実行スケジュールを設定できます。デフォルトでは、モニターは 4 週ごとに日曜日 9:30 PM に実行するよう設定されます。
- 「有効期限検査通知」フィールドに、証明書モニターのレポートをどのように受け取るのかを設定できます。デフォルトでは、レポートは Systemout.log に書き込まれます。
次の security.xml 構成オブジェクトは、モニター・タスクの開始時を指定し、証明書の有効期限しきい値を決め、Simple Mail Transfer Protocol (SMTP) を使用した E メールで通知を受けるか、またはメッセージ・ログで受けるかを指定します。事前通知ログはカスタム・プロパティーで設定されます。<wsCertificateExpirationMonitor xmi:id="WSCertificateExpirationMonitor_1" name="Certificate Expiration Monitor" daysBeforeNotification="30" isEnabled="true" autoReplace="true" deleteOld="true" wsNotification="WSNotification_1" wsSchedule="WSSchedule_2" nextStartDate="1134358204849"/>
事前通知期間は security.xml ファイル内でカスタム・プロパティーによって設定されます。<properties xmi:id="Property_1422758742456" name="com.ibm.ws.security.expirationMonitorNotificationPeriod" value="90"/>
以下のスケジュール・オブジェクトのサンプルでは、証明書モニターの各実行間の日数として frequency 属性が示されています。<wsSchedules xmi:id="WSSchedule_2" name="ExpirationMonitorSchedule" frequency="30" dayOfWeek="1" hour="21" minute="30"/>
dayOfWeek 属性は、スケジュールを調整して特定の曜日に実行するようにします。これは、frequency が 30 または 31 日間に設定されているかどうかにかかわらず、常に同じ日です。24 時 間クロックに基づき、hour と minute 属性は、有効期限モニターが特定の日のいつ開始するかを決定します。
以下の通知オブジェクトのサンプル・コードでは、有効期限モニターの実行後にユーザーに通知を行う通知構成を示しています。<>wsNotifications xmi:id="WSNotification_1" name="MessageLog" logToSystemOut="true" emailList=""/
有効期限モニター通知の場合、メッセージ・ログ、SMTP サーバーを使用した E メール、または両方の通知の方法を選択できます。E メール・オプションを構成する場合は、フォーマット user@domain@smtpserver を使用します。SMTP サーバーを指定しない場合は、WebSphere® Application Server はデフォルトで E メール・アドレスと同じドメインになります。 例えば、joeuser@ibm.com を構成すると、WebSphere Application Server は smtp-server.ibm.com の呼び出しを試みます。スクリプトを使用して複数の E メール・アドレスを指定するには、項目の間にパイプ (|) 文字を追加する必要があります。logToSystemOut 属性を指定する場合は、有効期限モニターの結果が、該当する環境のメッセージ・ログ (通常は SystemOut.log ファイル) に送信されます。
と選択することによって構成できます。
- 証明書有効期限モニターを使用して、以下の機能を実行できます。
- NodeDefaultDeletedStore または DmgrDefaultDeletedStore をクリアします。 この操作では証明書が削除されることは報告されず、サイレントに実行されます。
- ルート鍵ストア、DmgrDefaultRootStore または NodeDefaultRootStore、および DmgrRSATokenRootStore または NodeRSATokenRootStore が検査されます。ルート証明書の有効期限が切れているか、しきい値期間内または事前通知期間内にある場合、その証明書はレポートに記録されます。
- 有効期限が切れているか、しきい値期間内にあるルート証明書は、元の証明書を作成するために使用された情報と同じ情報を使用して再作成されます。元のルート証明書の署名者証明書は、新規ルート証明書の署名者で置き換えられます。
- ルート証明書が置き換えられる場合、すべての鍵ストアが検査され、元のルート証明書で署名されたチェーン証明書がないか調べられます。存在する場合は、チェーン証明書が更新されます (新規ルート証明書を使用して再作成されます) 元の証明書の署名者証明書は、再作成された証明書の署名者で置き換えられます。
- すべてのルート鍵ストアが処理された後に、有効期限が切れた証明書、有効期限しきい値内の証明書、または事前通知期間内の証明書に対して、残りの鍵ストアが検査されます。これらのいずれかのカテゴリーに入る証明書はレポートに記載されます。
- 有効期限が切れた証明書または有効期限しきい値内にある証明書が存在し、これらの証明書が WebSphere によって作成された自己署名証明書またはチェーン証明書である場合、これらの証明書は置き換えられます。チェーン証明書ルートがルート鍵ストア内に存在しない場合は、デフォルトのルート証明書として再作成されます。元のルート証明書の署名者証明書は、新規証明書の署名者で置き換えられます。
- 構成設定に基づいて、レポートが生成され、戻されるか、ログ・ファイルに書き込まれるか、またはメールで通知されます。
- 置き換えられる証明書のタイプ
有効期限モニターでは、DmgrDefaultRootStore または NodeDefaultRootStore 内のルート証明書によって署名された、自己署名証明書およびチェーン個人証明書が置き換えられます。 自己署名証明書は、元の自己署名証明書を作成するのに使用されたすべての情報を使用して更新されます。チェーン証明書は、元の証明書を署名するのに使用されたのと同じルート証明書を使用して更新されます。認証局 (CA) によって作成された証明書を証明書モニターが置き換えることはできず、管理者が置き換える必要があります。
署名者証明書は、個人証明書の公開部分です。したがって、独自に作成されるのではなく、個人証明書から抽出されます。証明書モニターは個人証明書を置き換える場合、すべての鍵ストアをチェックして、有効期限が切れた個人証明書から抽出された署名者証明書がないか確認し、その署名者証明書を、新しく作成された個人証明書から抽出された署名者証明書に置き換えます。署名者証明書が証明書ファイルから鍵ストアに追加されたものであるか、 または、ポートから取得するオプションを使用して追加されたものである場合、その署名者証明書はおそらく置き換えられます。有効期限が切れているか、 有効期限しきい値内にある場合は、その署名者証明書が置換されていないことがユーザーに通知されます。その証明書を削除し、有効な証明書で置き換えてください。
- 証明書有効期限レポート
証明書有効期限モニターが実行されると、処理内容について報告するレポートが生成されます。このレポートは、 デフォルトでは SystemOut.log に書き込まれます。ユーザーは証明書モニターのレポートが E メールでユーザーに送信されるように構成できます。ユーザーが証明書有効期限モニターを wsadmin AdminTask startCertificateExpMonitor から実行した場合、 レポートは、そのユーザーと、「証明書有効期限通知」設定でレポートの送信先として指定されたロケーションに戻されます。
証明書モニターが実行され、出力を報告するような有効期限切れ証明書がない場合は、証明書が検査されたこと、および有効期限の問題が検出されなかったことを示す通知メッセージが返されます。以下に例を示します。**** Subject: Expiration Monitor ****; Hostname: myHost Profile UUID:AppSrv01-BASE-8da8e11e-70c6-451f-862b-8a08e408110b Process type: UnManagedProcess Checking for expired certificate and certificates in the 60 days threshold period. CWPKI0735I: All certificates were searched and no expiration issues were found.
証明書有効期限モニターは、証明書に関する情報をいくつかのセクションに分けて報告します。事前通知セクション、有効期限が切れた証明書のセクション、置換された証明書のセクション、および、 置換できない証明書のセクションがあります。レポート内の証明書を識別するために使用されるのは、証明書が個人証明書と署名者証明書のどちらなのか、証明書の別名、および証明書が入っている鍵ストアです。
事前通知セクションには、事前通知しきい値内にあるすべての証明書がリストされます。これは、証明書有効期限モニターがその日以降に実行されたら証明書が置換される日付をユーザーに通知する警告期間として役立ちます。また、このセクションでは、もうすぐ行われる証明書置換にユーザーが関心を持つ必要がある理由についての注意も示されます。事前通知期間内にある証明書がない場合、このセクションはレポートに含まれません。以下に例を示します。*** 証明書有効期限しきい値の 90 日内の証明書 (90 日以内に置き換えられる可能性があります) ***; CWPKI0714I: 証明書有効期限モニターが最近実行され、関連メッセージにリストされている証明書が次の 90 日以内に置き換えられることを検出しました。この置き換えは、構成されたポリシーに基づいて、 有効期限切れが近い自己署名証明書を有効期限切れの 60 日前に自動的に置き換えます。この通知は、証明書が自動的に置き換えられるときに問題が発生する可能性があることを知らせます。 CWPKI0715I: 場合によっては、証明書の自動置き換えが原因で、非管理対象ノードでの Web サーバー・プラグインの作動に障害が発生する可能性があります。そういったシチュエーションでは、プラグインは、 自動的置き換えプロセスによって置き換えられた証明書の署名者を使用するので、HTTPS を介してアプリケーション・サーバーに接続できなくなります。起こり得る重大な障害を回避するには、スケジュールされた置換日の前に処置を行って、 期限切れが近い証明書を置き換え、新しい署名者を使用するようにプラグイン kdb を更新する必要があります。 CWPKI0719I: 「testKeyStore((cell):myHostNode01Cell:(node):myHostNode01)」鍵ストア内の testcert1 個人証明書は、2015 年 5 月 10 日に有効期限が切れる予定であり、しきい値日である 2015 年 3 月 11 日以降に置き換えられる可能性があります。
有効期限が切れた証明書のセクションには、有効期限が切れた証明書または有効期限しきい値内にある証明書が示されます。証明書が有効期限しきい値内にある場合は、いつ証明書の有効期限が切れるのかが示されます。 以下に例を示します。*** 有効期限が切れた証明書または有効期限しきい値内にある証明書 ***; CWPKI0642I: 鍵ストア「NodeDefaultTrustStore((cell):myHostNode01Cell:(node):myHostNode01)」内の署名者証明書別名「oldcert」は 2015 年 2 月 19 日に有効期限が切れます。 CWPKI0680I: 鍵ストア「testKeyStore((cell):myHostNode01Cell:(node):myHostNode01)」内の個人証明書別名「selfcert」は 2014 年 11 月 9 日に有効期限が切れました。 CWPKI0643I: 鍵ストア「testKeyStore((cell):myHostNode01Cell:(node):myHostNode01)」内の個人証明書別名「testcert」は 2015 年 2 月 19 日に有効期限が切れます。
置換された証明書のセクションには、置換されたすべての証明書がリストされます。サーバーのルート鍵ストア内のルート証明書で署名された自己署名個人証明書およびチェーン個人証明書は置換可能です。署名者証明書は、置換された個人証明書から抽出された署名者によって置換可能です。*** 有効期限が切れたか、有効期限しきい値が過ぎて、置換された証明書 ***; CWPKI0645I: 鍵ストア「testKeyStore((cell):myHostNode01Cell:(node):myHostNode01)」内の個人証明書別名「selfcert」は置き換えられました。 CWPKI0644I: 鍵ストア「NodeDefaultTrustStore((cell):myHostNode01Cell:(node):myHostNode01)」内の署名者証明書別名「selfcert」は置き換えられました。 CWPKI0645I: 鍵ストア「testKeyStore((cell):myHostNode01Cell:(node):myHostNode01)」内の個人証明書別名「testcert」は置き換えられました。
置換できない証明書のセクションには、有効期限が切れた証明書または有効期限しきい値内の証明書で、置換できないものがすべてリストされます。個人証明書は、 読み取り専用の鍵ストア内にある場合、または、証明書モニターが新規証明書作成のための情報を保有していない場合は、置換されません。証明書が、サーバーのルート鍵ストア内にない証明書によって署名されている場合は、その証明書を置換することはできません。その証明書は、CA 証明書である可能性があります。署名者証明書の取得元の個人証明書が構成に存在しない場合、その署名者証明書は置換できません。以下に例を示します。*** 有効期限が切れたか、有効期限しきい値が過ぎて、サーバーによって置換できない証明書 ***; CWPKI0642I: 鍵ストア「NodeDefaultTrustStore((cell):myHostNode01Cell:(node):myHostNode01)」内の署名者証明書別名「oldcert」は 2015 年 2 月 19 日に有効期限が切れます。
- 削除済み鍵ストア・ファイルのクリア
有効期限モニターは、削除済み証明書鍵ストア・ファイルをクリアします。削除済み鍵ストア・ファイル NodeDefaultDeletedStore は、ユーザーが復元を必要とする場合に備えて、 他の鍵ストアから削除された証明書のコピーが置かれる場所です。削除済み鍵ストア・ファイルはときどきクリーンアップされる必要があるため、 証明書モニターの実行時にクリアされます。PKCS12 鍵ストアの性質により、鍵ストア内には少なくとも 1 つの項目が存在している必要があります。削除済み鍵ストア・ファイルから削除された証明書については報告されません。
注: 以下の構成オプションが有効になっている場合、有効期限モニターが証明書を置換するときにランタイムが動的に影響を受けることがあります。「SSL 構成に変更が生じた場合にランタイムを動的に更新する」チェック・ボックスをチェックします。
とクリックします。 構成設定の下で、これが有効にされている場合、 証明書が置換されるとクライアント SSL ランタイムはすぐに新しい証明書を使用するようになり、それに続いて、SSL キャッシュおよび鍵ストア・キャッシュがフラッシュされ、SSLServerSockets (分散および Admin SOAP 上の RMI/IIOP) を使用するいくつかのポートが再始動されます。ポートを再始動すると、既存の接続は切断されます。 これらの接続は、ポート再始動が完了した後に再接続されます。 チャネル・フレームワーク (z/OS 上の HTTP、BUS、RMI/IIOP) を使用するエンドポイントは既存の接続に影響を与えませんが、新規接続では新規証明書が使用されます。
動的変更プロパティーが使用不可で、新規証明書が有効になる前の間は、管理者は、各ノードが同期済み構成を持った後に、全セル内ですべてのプロセスを再生する必要があります。