keytool を使用して、JSSE (Java Secure Socket Extension) デジタル証明書を設定および操作します。開発者プロファイルの場合、Enterprise Server はサーバー側で、JSSE 形式を使って証明書とキーストアを管理します。すべてのプロファイルで、クライアント側 (アプリケーションクライアントまたはスタンドアロン) では、JSSE 形式を使用します。
J2SE SDK に同梱されている keytool を使用すれば、管理者は、公開鍵と非公開鍵のペアおよび関連する証明書を管理できます。さらに、ユーザーは、通信接続先の公開鍵を証明書の形式でキャッシュできます。
keytool を実行するには、J2SE の /bin ディレクトリがパスの中に設定されているか、またはツールへのフルパスがコマンド行に存在するように、シェルの環境を設定する必要があります。keytool の詳細は、keytool のドキュメント (http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html) を参照してください。
次の例は、JSSE ツールによる証明書処理に関する使用方法を示したものです。
RSA 鍵アルゴリズムを使ってタイプ JKS のキーストア内に自己署名付き証明書を作成する。RSA は RSA Data Security, Inc. が開発した公開鍵暗号化技術です。この略語は、この技術の開発者である Rivest、Shamir、および Adelman を表しています。
keytool -genkey -noprompt -trustcacerts -keyalg RSA -alias ${cert.alias} -dname ${dn.name} -keypass ${key.pass} -keystore ${keystore.file} -storepass ${keystore.pass} |
証明書を作成する別の例については、「keytool ユーティリティーを使って証明書を生成する」を参照してください。
デフォルトの鍵アルゴリズムを使ってタイプ JKS のキーストア内に自己署名付き証明書を作成する。
keytool -genkey -noprompt -trustcacerts -alias ${cert.alias} -dname ${dn.name} -keypass ${key.pass} -keystore ${keystore.file} -storepass ${keystore.pass} |
証明書に署名する例については、「keytool ユーティリティーを使ってデジタル証明書に署名する」を参照してください。
タイプ JKS のキーストアで利用可能な証明書を表示する。
keytool -list -v -keystore ${keystore.file} -storepass ${keystore.pass} |
タイプ JKS のキーストア内の証明書情報を表示する。
keytool -list -v -alias ${cert.alias} -keystore ${keystore.file} -storepass ${keystore.pass} |
RFC/テキスト形式の証明書を JKS ストア内にインポートする。証明書は、バイナリエンコーディングではなく、Internet RFC (Request for Comments) 1421 標準によって定義された印刷可能なエンコーディング形式を使って格納されることがしばしばあります。Base 64 エンコーディングとしても知られるこの証明書形式を使用すれば、電子メールなどの機構を使って証明書をほかのアプリケーションにエクスポートしやすくなります。
keytool -import -noprompt -trustcacerts -alias ${cert.alias} -file ${cert.file} -keystore ${keystore.file} -storepass ${keystore.pass} |
タイプ JKS のキーストア内の証明書を PKCS7 形式でエクスポートする。「Public Key Cryptography Standards #7, Cryptographic Message Syntax Standard」によって定義された応答形式には、発行される証明書に加え、それをサポートする証明書チェーンも含まれます。
keytool -export -noprompt -alias ${cert.alias} -file ${cert.file} -keystore ${keystore.file} -storepass ${keystore.pass} |
タイプ JKS のキーストア内の証明書を RFC/テキスト形式でエクスポートする。
keytool -export -noprompt -rfc -alias ${cert.alias} -file ${cert.file} -keystore ${keystore.file} -storepass ${keystore.pass} |
タイプ JKS のキーストアから証明書を削除する。
keytool -delete -noprompt -alias ${cert.alias} -keystore ${keystore.file} -storepass ${keystore.pass} |
キーストアから証明書を削除する別の例については、「keytool ユーティリティーを使って証明書を削除する」を参照してください。
keytool を使用して証明書の生成、インポート、およびエクスポートを行います。デフォルトでは、keytool は実行元のディレクトリにキーストアファイルを作成します。
証明書を実行すべきディレクトリに移動します。
証明書の生成は常に、キーストアファイルとトラストストアファイルが格納されたディレクトリ (デフォルトでは domain-dir/config) 内で行います。これらのファイルの場所を変更する方法については、「証明書ファイルの場所の変更」を参照してください。
次の keytool コマンドを入力することで、キーストアファイル keystore.jks 内に証明書を生成します。
keytool -genkey -alias keyAlias-keyalg RSA -keypass changeit -storepass changeit -keystore keystore.jks |
keyAlias には任意の一意名を指定します。キーストアまたは非公開鍵のパスワードをデフォルト以外の値に変更した場合には、前述のコマンドの changeit をその新しいパスワードで置き換えてください。デフォルトのキーパスワードエイリアスは「s1as」です。
プロンプトが表示され、keytool が証明書の生成に使用するユーザーの名前、組織、およびその他の情報の入力を求められます。
次の keytool コマンドを入力することで、生成された証明書をファイル server.cer (または client.cer でもよい) にエクスポートします。
keytool -export -alias keyAlias-storepass changeit -file server.cer -keystore keystore.jks |
認証局によって署名された証明書が必要な場合は、「keytool ユーティリティーを使ってデジタル証明書に署名する」を参照してください。
トラストストアファイル cacerts.jks を作成し、そのトラストストアに証明書を追加するには、次の keytool コマンドを入力します。
keytool -import -v -trustcacerts -alias keyAlias -file server.cer -keystore cacerts.jks -keypass changeit |
キーストアまたは非公開鍵のパスワードをデフォルト以外の値に変更した場合には、前述のコマンドの changeit をその新しいパスワードで置き換えてください。
このツールは、証明書に関する情報を表示し、その証明書を信頼するかどうかをユーザーに尋ねます。
yes と入力し、続いて Enter キーを押します。
すると、keytool から次のようなメッセージが表示されます。
Certificate was added to keystore [Saving cacerts.jks] |
Enterprise Server を再起動します。
デジタル証明書の作成後、所有者はそれに署名して偽造を防止する必要があります。E コマースのサイト、または ID の認証が重要であるサイトは、既知の証明書発行局 (CA) から証明書を購入できます。認証に心配がない場合、たとえば、非公開のセキュアな通信だけが必要な場合などは、CA 証明書の取得に必要な時間と費用を節約して、自己署名付き証明書を使用してください。
証明書の鍵のペアを生成するため、CA の Web サイトの指示に従います。
生成された証明書の鍵のペアをダウンロードします。
キーストアファイルとトラストストアファイルが格納されたディレクトリ (デフォルトでは domain-dir/config ディレクトリ) 内に、証明書を保存します。「証明書ファイルの場所の変更」を参照してください。
使用しているシェルで、証明書を含むディレクトリに変更します。
keytool を使用して、証明書をローカルのキーストア、および必要に応じてローカルのトラストストアにインポートします。
keytool -import -v -trustcacerts -alias keyAlias -file server.cer -keystore cacerts.jks -keypass changeit -storepass changeit |
キーストアまたは非公開鍵のパスワードがデフォルト以外の値である場合には、前述のコマンドの changeit をその新しいパスワードで置き換えてください。
Enterprise Server を再起動します。
既存の証明書を削除するには、keytool -delete コマンドを使用します。次に例を示します。
keytool -delete -alias keyAlias -keystore keystore-name -storepass password