目次
概要javax.net.SSLServerSocketを利用するための証明書を作成する。以下の条件で証明書を生成・署名して、JVMから利用可能にする。
環境こちらと同様であるため省略。手順CA局の作成(OpenSSLを利用)こちらと同様であるため省略。秘密鍵と証明諸要求の作成(keytoolを利用)新規に証明書要求を作成する。keytoolのgenkey/reqcertコマンドを用いる。keytoolでCSR(Certificate Signing Request)を作成する流れは以下の通り。
秘密鍵の作成% 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を利用)こちらで作製した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局の証明書をimportkeytoolを使って既存の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)] 参考参考リンク |