說明: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
?