Java の keytool で作った秘密鍵の方を取出したいのですが、どう
したらいいでしょうか。
Java についてくる keytool というコマンドで鍵と証明書を作るこ
とはできます(-genkey)。できた証明書を、ファイルに取出すこと
もできます(-export)。こうして取出したファイルは、openssl な
どで処理することもできます。しかし、秘密鍵の方は取出せないよ
うに思えます。本当にそうなんでしょうか。
やりたいのは、Java のプログラムと C のプログラム(OpenSSL)を
繋ぎたいということです。
openssl の方で作った秘密鍵を Java の keystore に突っ込んでも
いいんでしょうね。そちらの方法も、存在すれば教えて下さい。証
明書の方は、keytool -import で取り込めます。
よろしくお願いします。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
> Java の keytool で作った秘密鍵の方を取出したいのですが、どう
> したらいいでしょうか。
こちらは分かりません(調べた範囲では無かったと思うのですが...)。
> openssl の方で作った秘密鍵を Java の keystore に突っ込んでも
> いいんでしょうね。そちらの方法も、存在すれば教えて下さい。証
> 明書の方は、keytool -import で取り込めます。
秘密鍵単体ではないですが、J2EE SDKのkeytoolにopenssl等で作成した
PKCS12形式の証明書をjks形式のkeystoreへコンバートする機能があります。
参考にしたのは以下のページです:
http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/release/ConfigGuide.html
# 意図していることと違うようでしたらすいません
In article <4030c061$0$19844$44c9...@news2.asahi-net.or.jp>
"Takaaki Ishii" <fm7t...@asahi-net.or.jp> writes:
> > Java の keytool で作った秘密鍵の方を取出したいのですが、どう
> > したらいいでしょうか。
> こちらは分かりません(調べた範囲では無かったと思うのですが...)。
マニュアルを読む限りには、keytool では無理かと思ったのですが、
他にもそういう方法が無いという人がいると、そういう意味では心
強いです。
> 秘密鍵単体ではないですが、J2EE SDKのkeytoolにopenssl等で作成した
> PKCS12形式の証明書をjks形式のkeystoreへコンバートする機能があります。
>
> 参考にしたのは以下のページです:
> http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/release/ConfigGuide.html
なるほど。これはこれで使えそうです。PKCS12形式は、個人を識別
してサービスを許可する許可しないというのを決められるわけです
ね。方法は、公開鍵・秘密鍵でもいいし、パスワードでもいいみた
い。SSL で通信する時に、PKCS12 で認証するという方法を使う時
には、C と Java が繋がるんじゃないかなあ。
今は、https: でよく使っている X.509 の証明書(サーバが本物)
に対する秘密鍵の方が欲しかったのですか、X.509 より PKCS12 の
方が便利な局面も多そうですね。つまり、SSL で繋いだ瞬間に、接
続先の個人まで認識が終っているわけです。
> # 意図していることと違うようでしたらすいません
意図を越えてすばらしい発見がありました。ネットニュースなら、
最初に記事を書いた人の意図はあんまり関係なくて、他の大勢の読
み手にためになる話なら、たとえ最初の記事を書いた人には役に立
たなくても、歓迎されます。
PKCS12 の方もやってみたいと思います。引き続き、X.509 の方の
> なるほど。これはこれで使えそうです。PKCS12形式は、個人を識別
> してサービスを許可する許可しないというのを決められるわけです
> ね。方法は、公開鍵・秘密鍵でもいいし、パスワードでもいいみた
> い。SSL で通信する時に、PKCS12 で認証するという方法を使う時
> には、C と Java が繋がるんじゃないかなあ。
ご存知のように、PKCS12証明書はある人(またはサーバ)の
秘密鍵+X.509証明書 + その証明書を発行したCAのX.509証明書..
といった要素を含むため、単にkeytoolの制限を回避するために
一旦PKCS12証明書を作成して... という話です。
(パスワードはPKCS12内で証明書と秘密鍵のバッグの暗号化・復号に
使われていたものだったと思います)
# 作成したkeystoreは普通にSSL通信を行う際に使用できます。
# JSSEも万能ではないようなので、その限りにおいて、ですが。