Mac OSX 使用OpenSSL生成RSA公匙、私匙(pem)
说明:RSA为一种加密算法,生成的文件格式有两种,一种是PEM格式,另一种是DER格式,在Mac OSX 里面,pem格式是不能打开的,因此我们生成PEM文件之后,需要生成DER格式。需要按着下面的步骤走。
.DER=扩展名DER用于二进制DER编码的证书。这些证书也可以用CER或者CRT作为扩展名。比较合适的说法是“我有一个DER编码的证书”,而不是“我有一个DER证书”。
.PEM=扩展名PEM用于ASCII(Base64)编码的各种X.509 v3 证书。文件开始由一行"—–BEGIN …“开始
1.mac 自带openssl环境,不用安装,直接使用openssl就可以。
2.打开终端。
3.输入命令行:baomatoMac-mini:~ lixiangyang$ openssl(打开openssl环境)
4.继续下一步命令行:OpenSSL> genrsa -out rsa_private_key.pem 1024 (命令生成私匙) 下面是输出结果:
Generating RSA private key, 1024 bit long modulus
........................................++++++
..++++++
e is 65537 (0x10001)
5.下一步:OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt(命令把RSA私钥转换成PKCS8格式,密码为空就行)注意:转化之后生成的pem格式的文件(文本编译器打开的字符串),是pkcs8文件。下面的字符串是原始 的私钥key。
下面是输出结果:
Enter Encryption Password:(密码 )
Verifying - Enter Encryption Password:(再一次确认密码)
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICoTAbBgkqhkiG9w0BBQMwDgQInAB4b4BNL0ECAggABIICgF27qIz6cNwxy8Jg
JhWUK8kIqHLwZRznHTIBCZlu9eZHa1a0+p7FWmufYgfZz9Kz3GeK5cxILrxmwci1
TTP6Qthak7lWJLO5gJH47HBd50OeXdZWt6xD6Vp+YzyaztpmZ8SLMi5aGKw1CBVc
Dw1oJzD4BIk9LBYo9kqvZODp4waytDjaZDhnN65t8+R4TbnMK7yVsT+fTGCMkQmu
cr34jGOhoUYZBcwtxWwNbRptftnUwgdaV5jrKnQ5rJsxU3Bx+3SuaRZS7ef0Z9yO
ADpW6NACI3R9+6DT3k66qTfbz9F/tLVO6flZ8g9TY2zTJKtGYmb1N/ll0qAXFh7s
lD2WZhPdYGozICMWi1MvT55RI3hlosilQW8Ff5IXNmzFs7RgZlvfVRzVlryPXu5I
QWKnNUamRN88grHSBuXYesp/cwze0D9ma8LavoVmjaKVT85SU3J9PbPoSjbTc/nP
f20u0Gsx0bQdeMOswMpWe/AQeGj/MSs59ae93SfvWnQi0ONWeBkrQUD6OskrOJeo
jsmevTmubk191W9WiX/klOyGI/YXjl99qNmQo5wx6fWOfdRQ4/Urw5z9tozAXL5s
hYdUmV+eiNgddM/cdxpDbJtXhSvpq1RXqhBTsMPctCB8EUfG6adJ4ZgjZ8eTA3FF
2btbQ5Fqrw/y5ZFvqYlryKqoPgCa7gtKU8wQHkzDpfGUSX1eXfJQ1HZxywY44YlZ
sWwVNuVwDvnd2ZkZqHjqbyOHXPnORR8fvteaGJazD2VW8DaPMc0xIplN/Prp5VPj
nBnevsF7WDREV4cUVw5I7SsPWOMl0X/OocZOE3IPx364H6DkpYryfVs/rDWgqweK
AphvBEA=
-----END ENCRYPTED PRIVATE KEY-----
6.下一步:OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem (命令生成公匙)
下面是结果:
writing RSA key
配置终端生成图片:
7.生成 .der 文件
OpenSSL> req -new -out cert.csr -key rsa_private_key.pem(创建证书请求)
下面是输出结果:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
8.下一步根据提示敲回车,填写证书的内容:英文模板如下:
中文模板:
9.下一步:
OpenSSL> x509 -req -in cert.csr -out rsa_public_key.der -outform der -signkey rsa_private_key.pem -days 3650(自签署根证书)
输出结果:
Signature ok
subject=/C=CN/ST=Hangzhou/L=Zhejiang Provice/O=WDWL/OU=WDWL/CN=WDWL/emailAddress=xxxxxxx@163.com
Getting Private key
10.下一步:OpenSSL>exit ## (关闭OpenSSL)
结果:
baomatoMac-mini:~ lixiangyang$
11.生成的RSA公匙私匙 与 DER 文件:
12.当生成这三个文件的时候,需要在Finder里面搜索,才能找到,并将三个文件拖到桌面上来 ,下面是图的步骤。
13.验证证书。直接将rsa_public_key.der 拖到Xcode里面,双击打开,就会看到下面的情况。表示成功。
14.通过Mac自带的 文本编辑 打开两个文件,并且将生成的字符串记录下来。将公匙传到支付宝平台上。
11.参考链接:
一》生成RSA官方链接: http://www.openssl.org/docs/manmaster/apps/rsa.html
二》生成RSA pem文件: http://blog.sina.com.cn/s/blog_6f72ff900102v408.html
三》生成RSA pem文件: http://blog.csdn.net/fenglibing/article/details/8610280
四》生成DER:http://blog.sina.com.cn/s/blog_8589a6890102vitk.html
五》ios下使用rsa算法与php进行加解密通讯:https://blog.yorkgu.me/2011/10/27/rsa-in-ios-using-publick-key-generated-by-openssl/
六》der与pem文件格式的区别: http://blog.sina.com.cn/s/blog_a9303fd90101jmtx.html