OpenSSL と RSA鍵 と Java、ついでに OpenSSHの鍵

OpenSSLでRSAの鍵ペアを生成して、Javaのアプリケーションで利用する場合のメモ。

OpenSSLでの鍵生成
  • openssl genrsa 1024 > sample.key (1024bitの場合)

出来たsample.keyには、private.key もpublic.key も一緒に入っている。

- - - - - -

public.key の抜き出し
  • openssl rsa -in sample.key -pubout > public.key

- - - - - -

sample.key は the traditional SSLeay compatible format なので、Java の ライブラリが扱えるPKCS#8 foramt へ変換する。
  • openssl pkcs8 -topk8 -in sample.key -out private.key [-nocrypte|(パスフレーズに空にする)]
上記の手順で出来た、public.key と private.key は、Javaのjava.securityパッケージで扱える。

- - - - - -

Javaのアプリケーションなどで自作したRSA鍵をOpenSSL で扱う場合は、"-----BEGIN PRIVATE KEY-----" 等がちゃんと合っているか注意。異なっていると読んでくれません。

- - - - - -

OpenSSH のid_rsa.pub は Java から読めないみたいだけれど、id_rsa は上記のsample.key と同じ形式なので、同様の手法で private.key, public.key を生成できる。

0 コメント: