差分表示
- 最後の更新で追加された行はこのように表示します。
- 最後の更新で削除された行は
このように表示します。
*概要
javax.net.SSLServerSocketを利用するための証明書を作成する。~
以下の条件で証明書を生成・署名して、JVMから利用可能にする。
-1. CA局はOpenSSLで用意する。
-2. JVMで利用する鍵ペア(秘密鍵/公開鍵証明書要求)はkeytoolで生成する。
※OpenSSLでCSRを発行した場合は[[こちら>keytool]]
-3. 1.のCA局で2.の公開鍵証明書要求に署名する
*環境
[[こちら>keytool]]と同様であるため省略。
*手順
**CA局の作成(OpenSSLを利用)
[[こちら>keytool]]と同様であるため省略。
**秘密鍵と証明諸要求の作成(keytoolを利用)
新規に証明書要求を作成する。keytoolのgenkey/reqcertコマンドを用いる。~
keytoolでCSR(Certificate Signing Request)を作成する流れは以下の通り。
-1. 秘密鍵と自己署名した公開鍵証明書を作成して、keystoreに格納(genkeyコマンド)
-2. 1.の秘密鍵に対応する公開鍵からCSRを作成(reqcertコマンド)
***秘密鍵の作成
% keytool -genkey -keystore genkeyKeytoolKeyStore.11172004 -validity 365
キーストアのパスワードを入力してください: keystore
姓名を入力してください。
[Unknown]:
組織単位名を入力してください。
[Unknown]:
組織名を入力してください。
[Unknown]:
都市名または地域名を入力してください。
[Unknown]:
州名または地方名を入力してください。
[Unknown]:
この単位に該当する 2 文字の国番号を入力してください。
[Unknown]: JP
編集部注w でよろしいですか?
[no]: yes
<mykey> の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください): (→RETURN ENTERED)
***証明書要求の作成
% keytool -certreq -keystore genkeyKeytoolKeyStore.11172004 -file keytool.csr
キーストアのパスワードを入力してください: keystore
% cat keytool.csr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIICkTCCAk8CAQAwgYsxCzAJBgNVBAYTAkpQMREwDwYDVQQIEwhUb2t5by1UbzEUMBIGA1UEBxML
U2V0YWdheWEtS3UxHDAaBgNVBAoTE0NsaWVudCBTZXJ2aWNlIE9yZy4xHzAdBgNVBAsTFkVudGVy
cHJpc2UgV2ViIFNlcnZpY2UxFDASBgNVBAMTC01hc2FtaSBJdG91MIIBuDCCASwGByqGSM44BAEw
ggEfAoGBAP1/U4EddRIpUt9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbL
m1Vs14E7gB00b/JmYLdrmVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNa
FpEy9nXzrith1yrv8iIDGZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7L
vKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwW
eotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFM
O/7PSSoDgYUAAoGBAOXex1y7KOZcyOaKGAOKrHaKC4OZFg6qicvVVbG0tk1vwTuZW81d6YcJxENo
dp9QkqROvOtfbe1RxE7xGgdCJdvIknjPdgsdvWWTnTRtqlQn/ECXNMcGI4oDFdod6bsKVjI4hmtW
abJNtD49JqQLN24LAhRGyG/aPuZK5evITadaIz4SlrK4DQ==
-----END NEW CERTIFICATE REQUEST-----
**署名(OpenSSLを利用)
[[こちら>keytool]]で作製したCAでsignする。~
*** 署名
openssl caコマンドを行うだけ。
% openssl ca -config openssl.cnf -in keytool.csr -out signed-keytool.pem
**公開鍵証明書のimport(keytoolを利用)
事前にCA局の証明書をimportした後に、CA局がsignした公開鍵証明書をimportする。~
逆順で行うと公開鍵証明書の検証の際に必要な証明書が無いためimportできない。~
%%%なお、keytoolによるCSRに対する署名された公開鍵証明書のimport処理は、%%%~
%%%KeyStoreの既存の自己署名公開鍵証明書との差し替えとなる。%%%
*** CA局の証明書をimport
keytoolを使って既存のKeyStoreに新規に''信頼する''証明書をimportする場合は、-aliasオプションでaliasを設定することが必須である。
% keytool -import -keystore genkeyKeytoolKeyStore.11172004 -file cacert.pem
-alias opensslca
キーストアのパスワードを入力してください: keystore
所有者: ないしょ
実行者: 教えないw
シリアル番号: 0
有効日: Tue Nov 16 13:27:07 JST 2004 有効期限: Wed Nov 16 13:27:07 JST 2005
証明書のフィンガープリント:
MD5: 42:75:51:26:BB:71:10:FF:64:9D:E0:68:33:F4:E7:41
SHA1: 3E:39:E0:43:68:2F:E6:8A:5C:AE:1C:B3:34:CA:40:87:CE:CF:AC:5E
この証明書を信頼しますか? [no]: yes
証明書がキーストアに追加されました。
[install後のkeystoreのlist]
% keytool -list -keystore genkeyKeytoolKeyStore.11172004
キーストアのパスワードを入力してください: keystore
キーストアのタイプ: jks
キーストアのプロバイダ: SUN
キーストアには 2 エントリが含まれます。
opensslca, 2004/11/17, trustedCertEntry, <- これが上の操作でいれた奴
証明書のフィンガープリント (MD5): 42:75:51:26:BB:71:10:FF:64:9D:E0:68:33:F4:E7:41
mykey, 2004/11/17, keyEntry,
証明書のフィンガープリント (MD5): 7F:75:A0:2F:32:66:05:44:75:2E:B4:8D:A3:9C:2F:E3
*** CA局に署名された公開鍵証明書のimport
% keytool -import -file turncut-signed.keytool.pem
-keystore genkeyKeytoolKeyStore.11172004
キーストアのパスワードを入力してください: keystore
証明書応答がキーストアにインストールされました。
% keytool -list -keystore genkeyKeytoolKeyStore.11172004
キーストアのパスワードを入力してください: keystore
キーストアのタイプ: jks
キーストアのプロバイダ: SUN
キーストアには 2 エントリが含まれます。
opensslca, 2004/11/17, trustedCertEntry,
証明書のフィンガープリント (MD5): 42:75:51:26:BB:71:10:FF:64:9D:E0:68:33:F4:E7:41
mykey, 2004/11/17, keyEntry,
証明書のフィンガープリント (MD5): 96:94:00:3C:2A:C3:5E:D9:D3:5C:B1:53:4D:E0:1A:3C
※ self signedの MACは
mykey, 2004/11/17, keyEntry,
証明書のフィンガープリント (MD5): 7F:75:A0:2F:32:66:05:44:75:2E:B4:8D:A3:9C:2F:E3
と別物になっています。
*** [備考] CA局の公開鍵証明書を削除
keytoolの -deleteオプションで実行できます。具体的には以下の通り。
keytool -delete -keystore [対象となるkeystore] -alias [CA局の公開鍵証明書エントリ(=trustedCertEntry)]
*参考
**参考リンク
Last-modified: 2008-04-14 16:31:02