コマンド行から次の操作を実行します。
keytool –keystore clientkeystore –genkey –alias client 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): |
証明書署名要求を生成します。
keytool –keystore clientkeystore –certreq –alias client –keyalg rsa –file client.csr |
署名付き証明書を、関連する証明書署名要求に対して生成します。
openssl x509 -req -CA ca-certificate.pem.txt -CAkey ca-key.pem.txt -in client.csr -out client.cer -days 365 -CAcreateserial |
keytool を使用して、CA 証明書をクライアントキーストアにインポートします。
keytool -import -keystore clientkeystore -file ca-certificate.pem.txt -alias theCARoot Enter keystore password: javacaps Owner: EmailAddress=development@sun.com, CN=development.sun.com, OU=Development, O=Sun, L=Monrovia, ST=California, C=US Issuer: EmailAddress=development@sun.com, CN=development.sun.com, OU=Development, O=Sun, L=Monrovia, ST=California, C=US Serial number: 0 Valid from: Tue May 08 15:09:07 PDT 2007 until: Wed May 08 15:09:07 PDT 2008 Certificate fingerprints: MD5: 60:73:83:A0:7C:33:28:C3:D3:A4:35:A2:1E:34:87:F0 SHA1: C6:D0:C7:93:8E:A4:08:F8:38:BB:D4:11:03:C9:E6:CB:9C:D0:72:D0 Trust this certificate? [no]: yes Certificate was added to keystore |
keytool を使用して、関連するクライアントエイリアスの署名付き証明書をキーストアにインポートします。
keytool –import –keystore clientkeystore –file client.cer –alias client Enter keystore password: javacaps Certificate reply was installed in keystore |
クライアント証明書に証明書チェーンがない場合、次のエラーが生成されます。
keytool -import -keystore clientkeystore -file client.cer -alias client Enter keystore password: javacaps keytool error: java.lang.Exception: Failed to establish chain from reply |
このエラーは、CA の証明書が最初にキーストアにインポートされなかったことが原因です。まず CA の証明書をインポートし (手順 4)、それから client.cer ファイル自体をインポートして証明書チェーンを形成します (手順 5)。
これで、非公開鍵と関連する証明書チェーンをキーストア clientkeystore に備えることができました。これを、クライアント (アダプタ) 認証用のキーストアとして使用できます。ただし、CA 証明書は、接続する予定の Web サーバーの信頼できる証明書ストアにインポートするように注意してください。さらに、Web サーバーをクライアント認証用に構成してください (たとえば、Apache の場合は httpd.conf)。