深入学习iOSiOSiOS知多少

Mac OSX 使用OpenSSL生成RSA公匙、私匙(pem)

2016-01-12  本文已影响7576人  阳光的大男孩儿

说明: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

 

上一篇下一篇

猜你喜欢

热点阅读