以前にはまったことがあったので、簡単にまとめておきます。 OpenSSLでRSA鍵を生成したときのデフォルトのフォーマットであるPEM形式は、Javaの標準APIでは読み取れないため、DER形式に変換しておく必要があります。 OpenSSLで公開鍵・秘密鍵を生成する # PEM形式の秘密鍵を生成する openssl genrsa -out private_key.pem 1024 # PKC8/DER形式に変換する openssl pkcs8 -in private_key.pem -topk8 -nocrypt -outform DER -out private_key.pk8 # DER形式の公開鍵を生成する openssl rsa -in private_key.pem -pubout -outform DER -out public_key.der Javaで公開鍵・秘密鍵を読み込