文章转自:https://blog.csdn.net/solyutian/article/details/84033765
概述
在对接第三方的时候经常会用到秘钥加密传输数据,需要生成cer文件、key公私钥、pem公私钥去测试接口,这里用openssl
去生成公钥私钥,非常好用。
附上window下openssl的安装教程:
https://blog.csdn.net/sunhuansheng/article/details/82218678
生成秘钥
打开控制台:
openssl安装完成后ctrl+r打开控制台,输入openssl
进入OpenSSL模式。或者进入秘钥需要生成的目录,在路径栏输入cmd进入当前目录的控制台。
进入openssl模式:
1、生成key
OpenSSL> genrsa -out 20210106.key 1024
20210106.key 是生产key的名称可随意 。 1024是生成密钥的长度。
2、生成cer证书
OpenSSL> req -new -x509 -key 20210106.key -out 20210106.cer -days 3650 -subj /CN=baidu.com
20210106.key为之前生成的key的名字,20210106.cer为生成的证书名字,3650为证书过期天数,CN的参数baidu.com是的你主机名或者IP地址。
3、生成pfx证书
OpenSSL> pkcs12 -export -out 20210106.pfx -inkey 20210106.key -in 20210106.cer
注意:生成pfx证书会提示设置密码,此密码要记住,提取密钥时要输入此密码
4、从pfx里提取出密钥对
OpenSSL> pkcs12 -in 20210106.pfx -nocerts -nodes -out pubAndPri.key
提取密钥对需要输入生成fpx证书时输入的密码,通过密钥对可以提取公钥跟私钥。
5、从密钥对里提取出私钥
OpenSSL> rsa -in pubAndpri.key -out openssl_pri.key
6、从密钥对里提取出公钥
OpenSSL> rsa -in pubAndpri.key -pubout -out openssl_pub.key
7、因为RSA算法使用的是pkcs8模式补足,需要对提取的私钥进一步处理
OpenSSL> pkcs8 -topk8 -inform PEM -in openssl_pri.key -outform PEM -nocrypt
8、保存处理过的私钥
复制窗口中生成的密钥到文本编辑器中保存,命名为 openssl_pri_pkcs8.key 。
9、生成pem公私钥
9.1 生成pem私钥(PKCS1格式)
OpenSSL> genrsa -out private_key.pem 1024
9.2 PKCS1私钥转换为PKCS8(该格式一般java调用)
OpenSSL> pkcs8 -topk8 -inform PEM -in private_key.pem -outform pem -nocrypt -out private_pkcs8.pem
9.3 生成公钥
OpenSSL> rsa -in private_key.pem -out rsa_public_key.pem -pubout
-----------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------
一连串操作下来最后得到的目录: