次の節では、キーストアとトラストストアの両方を作成する方法について説明します。または、次の場所にあるデフォルトの論理ホストのトラストストアのような既存のトラストストアに証明書をインポートしてもかまいません。
<c:\JavaCAPS>\appserver\domains\<MyDomain>\config\cacerts.jks |
<c:\JavaCAPS> は Java CAPS がインストールされるディレクトリ、<MyDomain> はお使いのドメイン名です。主に使用するツールは keytool ですが、openssl も pkcs12 キーストアを生成するためのリファレンスとして使用します。
openssl と利用可能なダウンロードの詳細については、次の Web サイトを参照してください。
この節では、非公開鍵、および関連する証明書または証明書チェーンの両方のデータベース形式に 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 の両方またはいずれかを、アダプタのキーストアとして使用できます。
この節では、JSSE で使用できる PKCS12 キーストアの作成方法について説明します。実際の稼動環境では、顧客が既存の非公開鍵と証明書 (既知の CA によって署名済み) をすでに保持している場合があります。その場合、ユーザーは keytool を使用しての非公開鍵のインポート、エクスポートいずれもできないため、JKS 形式は使用できません。非公開鍵とその証明書から成る PKCS12 データベースの生成が必要です。
生成された PKCS12 データベースは、アダプタのキーストアとして使用できます。現在、keytool ユーティリティーには、PKCS12 データベースへの書き込み機能はありませんが、PKCS12 データベースから読み取ることはできます。
PKCS12 証明書を生成できる他社製のツールを代わりに使用することもできます。
次の例では、openssl を使用して PKCS12 キーストアを生成しています。
cat mykey.pem.txt mycertificate.pem.txt>mykeycertificate.pem.txt |
既存のキーは、mykey.pem.txt ファイルに PEM 形式で格納されています。証明書は mycertificate.pem.txt にあり、これも PEM 形式です。キーおよびそのあとに続く証明書を含むテキストファイルを次のように作成します。
openssl pkcs12 -export -in mykeycertificate.pem.txt -out mykeystore.pkcs12 -name myAlias -noiter -nomaciter |
このコマンドは、ユーザーにパスワードの入力を要求します。パスワードは必須です。パスワードがないと、キーストアは JSSE で動作しません。このパスワードは、アダプタのキーストアパスワード用のパスワードとしても指定します。
このコマンドでは、openssl pkcs12 コマンドを使用して、非公開鍵と証明書を持つ PKCS12 キーストアも生成します。生成されるキーストアは mykeystore.pkcs12 で、myAlias エイリアスで指定されたエントリが格納されます。このエントリには、-in 引数で指定した非公開鍵と証明書が含まれます。noiter オプションと nomaciter オプションを指定して、生成されるキーストアが JSSE によって正しく認識されるようにします。
ここでは、信頼できる firstCA.cert、secondCA.cert、thirdCA.cert という CA が C:\cascerts ディレクトリに存在すると仮定して説明します。これら 3つの信頼できる証明書から成る新しいトラストストアを作成できます。
次のコマンドを実行します。
keytool -import -file C:\cascerts\firstCA.cert -alias firstCA -keystore myTrustStore |
このコマンドをあと 2 回入力しますが、firstCA の箇所を 2 回目は secondCA で、3 回目は thirdCA で置き換えます。これらの各コマンドエントリには、次の目的があります。
最初のエントリで、myTrustStore という名前のキーストアファイルを現在の作業ディレクトリに作成し、firstCA 証明書を firstCA というエイリアスでトラストストアにインポートします。myTrustStore の形式は JKS です。
2 回目のエントリでは、secondCA を代わりに使用して、secondCA 証明書をトラストストア myTrustStore にインポートします。
3 回目の入力では、thirdCA を代わりに使用して、thirdCA 証明書をトラストストアにインポートします。
これらを完了すると、myTrustStore をアダプタのトラストストアとして使用できます。