この節では、非公開鍵、および関連する証明書または証明書チェーンの両方のデータベース形式に JKS 形式を使用してキーストアを作成する方法について説明します。keytool はデフォルトでは、java.security ファイルに指定されているように、キーおよび証明書のデータベース (キーストアおよびトラストストア) の形式として JKS を使用します。CA は、証明書署名要求 (CSR) に署名する必要があります。これによりその CA は、アダプタの接続先であるサーバー側アプリケーションによって信頼されます。
<c:\JavaCAPS>\appserver\domains\<MyDomain>\config\keystore.jks |
<c:\JavaCAPS> は Java CAPS がインストールされるディレクトリ、<MyDomain> はお使いのドメイン名です。
次のコマンドを実行します。
keytool -keystore clientkeystore -genkey -alias client |
要求に従って、CSR の生成に必要な情報を入力します。次に、キーの生成セクションの例を示します。
Enter keystore password: javacaps What is your first and last name? [Unknown]: development.sun.com What is the name of your organizational unit? [Unknown]: Development what is the name of your organization? [Unknown]: Sun What is the name of your City or Locality? [Unknown]: Monrovia What is the name of your State or Province? [Unknown]: California What is the two-letter country code for this unit? [Unknown]: US Is<CN=development.sun.com, OU=Development, O=Sun, L=Monrovia, ST=California, C=US> correct? [no]: yes Enter key password for <client> (RETURN if same as keystore password): |
キーストアパスワードが指定されている場合は、アダプタにそのパスワードを指定します。
キーパスワードの入力を要求されたら、RETURN キーを押します。これで、キーパスワードがキーストアパスワードと同じになります。
この操作で、キーストアファイル clientkeystore が現在の作業ディレクトリに作成されます。「氏名 (名前と名字)」の質問には、完全修飾ドメインを指定する必要があります。このようにする理由は、VeriSign など一部の CA が、このプロパティーを完全修飾ドメイン名と見なすからです。
完全修飾ドメインを要求しない CA もありますが、可搬性を考慮して、完全修飾ドメイン名を使用することをお勧めします。そのほか、入力するすべての情報は有効でなければなりません。それらの情報を確認できないかぎり、VeriSign などの CA は、このエントリで生成される CSR に署名しません。
このキーストアには、クライアントのエイリアスを持つエントリが格納されます。次に示すように、このエントリは、生成された非公開鍵と CSR の生成に必要とされる情報から成ります。
keytool -keystore clientkeystore -certreq -alias client -keyalg rsa -file client.csr |
このコマンドで、証明書要求用に CA に提出できる証明書署名要求を生成します。client.csr ファイルには、PEM 形式で CSR が格納されます。
いずれかの CA (アダプタの接続先となる Web サーバーが信頼する CA) が、CSR に署名する必要があります。その CA は、対応する CSR の証明書を生成し、自身の非公開鍵で証明書に署名します。詳細については、次の Web サイトを参照してください。
または
その証明書が CA の証明書とチェーンになっている場合は次の手順の手順 4 を実行し、そうでない場合は手順 5 を実行します。
次のコマンドを実行します。
keytool -import -keystore clientkeystore -file client.cer -alias client |
このコマンドで証明書をインポートし、クライアント証明書が client.cer ファイルに、CA の証明書が CARoot.cer ファイルにあると想定します。
次のコマンドを実行して、CA の証明書をキーストアにインポートし、クライアントの証明書とチェーンにします。
keytool -import -keystore clientkeystore -file CARoot.cer -alias theCARoot |
次のコマンドを実行して、前の手順で証明書をインポートした CA によって署名されたクライアントの証明書をインポートします。
keytool -import -keystore clientkeystore -file client.cer -alias client |
生成される clientkeystore ファイルには、クライアントの非公開鍵と、それに関連する証明書チェーンが格納され、クライアントの認証および署名に使用されます。これで、キーストア、clientkeystore の両方またはいずれかを、アダプタのキーストアとして使用できます。