centos
1 | yum install openssl |
ubuntu
1 | apt-get install openssl |
windows
从网上下载已经编译好的openssl
http://gnuwin32.sourceforge.net/packages/openssl.htm
然后将安装路径加到环境变量中
生成私钥和证书
1 | openssl req -newkey rsa: 2048 -keyout my.key -subj "/C=XX/O=XX/OU=XX/OU=XX/OU=XX/CN=wzj.com" -x509 -days 36500 -out my.crt |
上面操作会给私钥加上密码, 可以通过参数-nodes
取消密码. (为了私钥的安全性, 最好加上密码)
如果是使用windows上的gnu openssl工具, 需要指定-config ../share/openssl.cnf
,
生成公钥
证书中包含了公钥, 因此直接使用证书生成
1 | openssl x509 -in my.crt -outform PEM -out my.pem |
得到了三个文件, 私钥my.key
, 公钥my.pem
, 证书my.crt
生成pfx文件
pfx需要私钥, 公钥, 证书
1 | openssl pkcs12 -export -out my.pfx -inkey my.key -in my.pem -certfile my.crt |
导出私钥
1 | openssl pkcs12 -in my.pfx -out my2.key -nocerts |
导出证书
1 | openssl pkcs12 -in my.pfx -out my2.crt-nodes -nokeys -nokeys |
生成公钥
1 | openssl x509 -in my2.crt -outform PEM -out my2.pem |
一些比较旧的系统还在使用pkcs8格式, 比如netty, 需要转换
1 | openssl pkcs8 -in my.key -topk8 -out my.pk8 |