Sun ONE Application Server 7, Enterprise Edition セキュリティ管理者ガイド |
第 3 章
証明書の管理この章では、Sun ONE Application Server 7 環境で信頼データベース、証明書、および証明書に関するリストを設定、管理する方法について説明します。
この章では、次の項目について説明します。
証明書と認証について認証とは、同一性 (ID) を確認するためのプロセスのことです。ネットワークを利用した対話の中で、認証によって各グループは他のグループとの同一性を識別します。証明書は、認証をサポートする方法の 1 つです。
証明書は、個人や企業などのエンティティの名前を指定するデジタルデータで、そのエンティティが所属する証明書に含まれる公開鍵を証明します。クライアントとサーバーの両方が証明書を持つことができます。
証明書は、証明書発行局 (CA) によって発行され、デジタル署名されます。CA は、インターネットを通じて証明書を販売する企業。または、企業のイントラネットまたはエクストラネットの証明書発行を担当する部門です。他者の ID を検証する手段として、どの CA が信頼に足るかを決定します。
証明書によって識別されるエンティティの名前と公開鍵のほかに、証明書には有効期限、証明書を発行した CA の名前、発行元 CA のデジタル署名が記録されています。証明書の内容と形式については、次のサイトの「Introduction to SSL」を参照してください。
http://docs.sun.com/db/prod/3802#hic
基本的なセキュリティの設定手順は次のとおりです。
- 信頼データベースを作成します。
「信頼データベースの作成」を参照してください。
- 証明書を要求します。
「証明書の要求」を参照してください。
- 証明書をインストールします。
「証明書のインストール」を参照してください。
- 暗号化を有効にします。
「SSL/TLS 暗号化の管理」を参照してください。
証明書に関するその他の管理タスクについては、「証明書の管理」および「CRL と CKL の管理」で説明します。
信頼データベースの実装Sun ONE Application Server では、管理サーバーと各サーバーインスタンスは、それぞれが専用の証明書とキーペアファイルを持ちます。これを信頼データベースと呼んでいます。
信頼データベースには、作成した公開鍵と秘密鍵を保存します。これをキーペアファイルと呼びます。キーペアファイルは、SSL 暗号化に使用されます。キーペアファイルは、サーバー証明を要求およびインストールするときに使われます。インストールした証明書は、信頼データベースに格納されます。キーペアファイルは暗号化され、インスタンスの /config ディレクトリに保存されます。
管理サーバーは 1 つの信頼データベースだけを持ち、各サーバーインスタンスはそれぞれに専用の信頼データベースを持ちます。証明書とキーペアデータベースファイルの名前は、それを使用するサーバーインスタンスの名前に基づいてつけられます。仮想サーバーの信頼データベースには、それぞれのサーバーインスタンスの信頼データベースが使われます。
管理者は、信頼データベースとその内容 (サーバー証明書とそこに含まれるすべての CA) を管理します。
この節では次の項目について説明します。
信頼データベースの作成
信頼データベースを作成する場合は、キーペアファイルで使われるパスワードを指定します。このパスワードは、暗号化された通信を使ってサーバーを起動するときにも使われます。
ローカルマシンに信頼データベースを作成するには、管理インタフェースで次の手順を実行します。
- 「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスし、サーバーインスタンスを選択します。
- 「Security (セキュリティ)」にアクセスします。
- 「Manage Database (データベースの管理)」をクリックします。
- 「Create Database (データベースを作成)」リンクをクリックします。
「Initialize Trust Database (信頼データベースの初期化)」ページが表示されます。
図 3-1 「Creating a Trust Database (信頼データベースの作成)」ページ
- データベースのパスワードを入力します。
- もう一度パスワードを入力します。
- 「OK (了解)」をクリックします。
- 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
- サーバーを停止し、再起動して変更を適用します。
信頼データベースのパスワードの変更
信頼データベースのパスワードを変更するには、管理インタフェースで次の手順を実行します。
- 「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスし、サーバーインスタンスを選択します。
- 「Security (セキュリティ)」にアクセスします。
- 「Manage Database (データベースの管理)」をクリックします。
- 「Change Password (パスワード変更)」リンクをクリックします。
「Change the Key Pair File Password (キーペアファイルのパスワード変更)」ページが表示されます。
- ドロップダウンリストから暗号化モジュールを選択します。
- 古いパスワードを入力します。
- 新しいパスワードを入力します。
- 新しいパスワードをもう一度入力します。
- 「OK (了解)」をクリックします。
- 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
- サーバーを停止し、再起動して変更を適用します。
証明書の実装サーバーの信頼データベースを作成すると、証明書を要求し、それを CA に提出できるようになります。企業に独自の社内 CA がある場合は、そこに証明書を要求します。社外の CA から証明書を購入する場合は、CA を選択し、その CA 専用の情報書式について確認します。
管理サーバーのサーバー証明書は 1 つだけです。各サーバーインスタンスに専用のサーバー証明書を持たせることができます。仮想サーバーごとにサーバーインスタンスの証明書を選択できます。
次の各項では、証明書の実装について説明します。
必要な CA 情報
証明書を要求する前に、選択した CA が必要とする情報を把握しておく必要があります。社外の CA または社内の CA にサーバー証明書を要求する場合は、次のような情報が必要になります。
- 電子メールアドレス - 社用電子メールアドレス。CA との連絡に使われる
- 組織名 - 所属する企業や教育機関などの公式名称。ほとんどの CA は、この情報を事業許可書などの公的文書で検証する
- 部署名 - 社内の部署を識別するオプションフィールド。「Inc.」や「Corp.」などを省略した略式の企業名の指定にも利用できる
- 場所 - 企業が立地する都市、地域、または国を示すオプションフィールド
- 都道府県名 - 通常は必須フィールドだが、一部の CA ではオプション。ほとんどの CA は略号を受け付けないため、確認が必要
- 国 - ISO 形式による 2 文字の国別コードを入力する必須フィールド。アメリカ合衆国の国別コードは「US」
すべての情報は、一連の属性値のペアとして組み合わされます。これを識別名 (DN) と呼び、証明書の対象を一意に識別します。
社外の CA から証明書を購入する場合は、証明書の発行を受ける前に、その CA が必要とする追加情報について確認する必要があります。ほとんどの CA では、申請者の身分証明を必要とします。たとえば、CA は企業名とサーバーの管理を会社から任された担当者の名前を検証します。また、情報を提出する法的な権限が提出者にあるかどうかを証明することが必要な場合もあります。
一部の社外の CA は、より詳細な識別情報を提出した企業または個人に対し、より詳細で信憑性の高い証明書を発行します。たとえば、管理者が www.your_company.com コンピュータの正規管理者であるだけでなく、会社の事業年数が 3 年で、顧客との係争が現在存在しないことを CA が検証したことを証明する証明書を購入することができます。
証明書の要求
信頼データベースを作成すると、証明書を要求できるようになります。
CA に証明書を要求するには、管理インタフェースで次の手順を実行します。
- 「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスし、左のペインでサーバーインスタンスを選択します。
- 「Security (セキュリティ)」にアクセスします。
- 「Certificate Management (証明書の管理)」を選択します。
- 「Request (要求)」リンクをクリックします。
「Request a Server Certificate (サーバー証明書の要求)」ページが表示されます。
図 3-2 「Request a Server Certificate (サーバー証明書の要求)」ページ
- 新規証明書の発行か、証明書の書き換えのどちらかを選択します。
多くの証明書は、半年または 1 年など、一定期間が経過すると失効します。一部の CA は、書き換え済みの証明書を自動的に送付します。
- 次の手順を実行して、証明書の要求をどのように送信するかを指定します。
- ドロップダウンリストから証明書を要求する場合は、使用するキーペアファイルの暗号化モジュールを選択します。
- キーペアファイルのパスワードを入力します。
内部モジュール以外の暗号化モジュールを選択していなければ、これは、信頼データベースの作成時に指定したパスワードです。サーバーはこのパスワードを使って申請者の秘密鍵を取得し、CA へのメッセージを暗号化します。次に、サーバーは公開鍵と暗号化されたメッセージの両方を CA に送信します。CA は公開鍵を使ってメッセージを復号化します。
- 申請者の識別情報を入力します。
図 3-3 サーバー証明書識別情報の要求
この情報の形式は CA によって異なります。
- 入力した情報に誤りがないことを確認します。
情報が正確なほど証明書の承認が迅速に行われます。証明書サーバーに要求を送信する場合は、要求を送信する前に入力情報を確認する画面が表示されます。
- 「OK (了解)」をクリックします。
- 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
- サーバーを停止し、再起動して変更を適用します。
入力した情報を含む証明書要求をサーバーが生成します。要求には、申請者の秘密鍵を使って作成したデジタル署名が埋め込まれます。CA は、サーバーマシンから CA へのルーティングの最中に要求が改ざんされていないことを、デジタル署名を使って検証します。証明書に改ざんの形跡が残る特殊な場合には、CA は申請者に電話で連絡します。
要求を電子メールで送信する場合、サーバーは要求の内容を電子メールメッセージとして作成し、それを CA に送信します。この場合、通常は電子メール経由で証明書が送られてきます。証明書サーバーの URL を指定した場合は、サーバーは指定された URL を使って証明書サーバーに要求を送信します。応答が電子メール経由で得られるかどうかは、CA によって異なります。
CA が証明書の発行に同意すると、申請者に通知が送られます。ほとんどの場合、CA は電子メール経由で証明書を送信します。証明書サーバーを利用している企業では、証明書サーバーの書式を使って証明書を検索できることがあります。
注
社外の CA に証明書を要求する誰もが証明書を取得できるとは限りません。多くの CA では、証明書の発行前に申請者の身分照会を義務づけています。承認を得るまでには、1 日〜 2 か月を要します。すべての必要情報を CA に迅速に提供する必要があります。
証明書を受け取ると、それをインストールできるようになります。それ以前でも、暗号化なしでサーバーを使用できます。
証明書のインストール
CA から受け取る証明書は、申請者だけが暗号解除できるように、申請者の公開鍵で暗号化されています。信頼データベースの正しいパスワードを入力すると、証明書の暗号を解除してインストールできるようになります。
証明書には次の 3 種類があります。
サーバーは、指定されたキーペアファイルパスワードを使ってインストール時に証明書の暗号を解除します。サーバーからアクセス可能な場所に電子メールを保存するか、電子メールのテキストをコピーし、ここで紹介する方法で「Install Certificate (証明書をインストール)」フォームに貼り付けることができるように準備します。
CA から送付された証明書をインストールするには、管理インタフェースで次の手順を実行します。
- 「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスし、左のペインでサーバーインスタンスを選択します。
- 「Security (セキュリティ)」にアクセスします。
- 「Certificate Management (証明書の管理)」を選択します。
- 「Install (インストール)」リンクをクリックします。
「Install a Server Certificate (サーバー証明書のインストール)」ページが表示されます。
図 3-4 「Install a Server Certificate (サーバー証明書のインストール)」ページ
- インストールする証明書の種類を選択します。
- ドロップダウンリストから暗号化モジュールを選択します。
- キーペアファイルのパスワードを入力します。
- このサーバーインスタンスだけで使う場合は、証明書名の欄には何も入力しません。ただし、次の場合は適切な情報を入力してください。
- 複数の仮想サーバーが複数の証明書を利用する。この場合は、サーバーインスタンス内で他と重複しないように証明書名を入力する
- 内部モジュール以外の暗号化モジュールを使用している。この場合は、その暗号化モジュールに含まれるすべてのサーバーインスタンス内で他と重複しないように証明書名を入力する
名前を入力すると、証明書の管理のページに表示されます。この名前は、内容がわかるようなものにする必要があります。たとえば、「United States Postal Service CA」は CA の名前で、「VeriSign Class 2 Primary CA」は CA の名前と証明書の種類の両方を示しています。
図 3-5 証明書インストール時のメッセージ情報
- 次のいずれかを選択します。
- 「OK (了解)」をクリックします。
- 次のいずれかを選択します。
- 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
- サーバーを停止し、再起動して変更を適用します。
証明書がサーバーの証明書データベースに格納されます。このデータベースのファイル名は、cert7.db です。
内蔵のルート証明書モジュールの使用Sun ONE Application Server に含まれる動的にロードできる証明書モジュールには、多くの CA のルート証明書が含まれています。ルート証明書モジュールを利用することで、ルート証明書を簡単にアップグレードできます。有名な CA 証明書をインストールするには、Sun ONE Application Server の将来のバージョンやサービスパックに含まれる新しいルート証明書モジュールファイルで古いファイルを更新します。
ルート証明書は PKCS11 暗号化モジュールの一部として実装されるので、そこに含まれるルート証明書を削除することはできません。また、これらの証明書を管理している間は、それを削除するオプションは提供されません。サーバーインスタンスからルート証明書を削除するには、サーバーの alias ファイルから次の要素を削除して、ルート証明書モジュールを無効化します。
証明書の管理サーバーにインストールされているさまざまな証明書の信頼性設定を、表示または削除することができます。これには、そのサーバー用の証明書だけでなく、CA の証明書も含まれます。証明書情報には、所有者と発行者が記録されています。
信頼性設定を使って、クライアントの信頼性を設定したり、サーバーの信頼性を解除したりすることができます。LDAP サーバー証明書では、サーバーは信頼されている必要があります。
証明書を管理するには、管理インタフェースで次の手順を実行します。
- 「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスし、サーバーインスタンスを選択します。
- 「Security (セキュリティ)」にアクセスします。
- 「Certificate Management (証明書の管理)」を選択します。
- 「Manage (管理)」リンクをクリックします。
- 管理する「Certificate Name (証明書名)」をクリックします。
「Edit Server Certificate (サーバー証明書の編集)」ページに、証明書の管理オプションが表示されます。
- 「Edit Server Certificate (サーバー証明書の編集)」ウィンドウでは、次の項目を選択できます。
- 「OK (了解)」または「Cancel (取消し)」を選択します。
- 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
- サーバーを停止し、再起動して変更を適用します。
CRL と CKL の管理CRL (証明書失効リスト) と CKL (危殆化キーリスト) には、クライアントユーザーまたはサーバーユーザーが信頼しなくなった証明書とキーが記録されています。一般的には、次のような状況がこれに該当します。
CRL と CKL は、どちらも CA によって作成され、定期的に更新されます。管理者は、CA から入手した CRL または CKL をインストールするか、システムから既存の CRL または CKL を削除します。
次の項では、CRL と CKL の管理について説明します。
CRL または CKL のインストール
CRL または CKL を CA から入手するには、管理インタフェースで次の手順を実行します。
- CRL または CKL をダウンロードする CA の URL を調べます。
- ブラウザに URL を入力し、サイトにアクセスします。
- CA の指示に従って CRL または CKL をローカルディレクトリにダウンロードします。
- 管理インタフェースで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスし、サーバーインスタンスを選択します。
- 「Security (セキュリティ)」にアクセスします。
- 「CRL/CKL」を選択します。
- 「Install (インストール)」リンクをクリックします。
「Install a Certificate Revocation List/Compromised Key List (証明書失効リスト / 危殆化キーリストのインストール)」ページが表示されます。
図 3-6 「Install a Certificate Revocation List/Compromised Key List (証明書失効リスト / 危殆化キーリストのインストール)」ページ
- 次のいずれかを選択します。
- 関連するファイルのフルパス名を入力します。
- 「OK (了解)」をクリックします。
- 「Add (追加)」をクリックします。
- 「OK (了解)」をクリックします。
- 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
- サーバーを停止し、再起動して変更を適用します。
CRL または CKL の削除
CRL または CKL を削除するには、管理インタフェースで次の手順を実行します。
- 「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスし、サーバーインスタンスを選択します。
- 「Security (セキュリティ)」にアクセスします。
- 「CRL/CKL」を選択します。
- 「Manage (管理)」リンクをクリックします。
インストールされているすべてのサーバーの CRL と CKL、およびそれぞれの有効期限を示す「Manage a Certificate Revocation List/Compromised Key (証明書失効リスト / 危殆化キーリストの管理)」ページが表示されます。
- 「Server CRLs (サーバー CRL)」または「Server CKLs (サーバー CKL)」リストから「Certificate Name (証明書名)」を選択します。
- 次のいずれかを選択します。
- 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」にアクセスしてサーバーインスタンスを選択し、「Apply Changes (変更を適用)」をクリックします。
- サーバーを停止し、再起動して変更を適用します。