解决OpenSSL 默认生成的密钥JAVA不能直接使用的问题
如果是使用以下命令生成和密钥,JAVA是不能直接使用的。
openssl genrsa -f 1.pem 1024
需要转成PKCS8 格式
从头来一遍吧:
- 生成私钥,公钥先不用提取,反正提取了也用不上
openssl genrsa -f 1.pem 1024
- 把刚生成的私钥转成PKCS8格式
openssl pkcs8 -topk8 -inform PEM -in 1.pem -outform PEM -nocrypt -out privateKey.pem
- 从PKCS8格式的私钥中提取公钥
penssl rsa -in privateKey.pem -out publicKey.pem -pubout
至此,就可以用JAVA去读取privateKey.pem和publicKey.pem了。
最后,在JAVA中读取公钥或私钥,须先把头尾两行和“\n”都替换掉,然后再用base64去decode()