RSA私鑰PKCS1 轉 PKCS8

關鍵命令:openssl pkcs8 -topk8 -inform PEM -in PKCS1.pem -outform PEM -nocrypt -out PKCS8.pem

PKCS1格式的私鑰

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDlUT8SqmIOhHUKAZGFRHOafTVV1jbXO7W9LC5OVQWpHgTNdrUo
LlHoMfwGwX77vjKiObkvJitSux1huD6xAEmMYCbD0EGz9GWUqWXvxcc4awk0qdcK
NI1muKgo+m314FbeLEnvRObL12pTkOTgdKEQ2paLIj57uuvGTgtwgbbzSwIDAQAB
AoGAXLCcZ/UKsYeEr0i3A0EJ4TYe6tUtUY5HBXHoPa1MHnGNy2biDp26abpafniT
1Tmpyby/R3mMJWKQm8EXRgAxuZHiyD3Ijsbs+29pESxp7VVy+hGdRmGwZWDh3UAR
kAqvQKaihULydXBzCC5dINh6J0akyK0wsoQFG7yCGm3/RjECQQD6OpOdVEEqkVNn
C99E3Fk8EH7nTaZ+2+i0Qca9N4Q7aM5+qZ5waUp4EH+gD5XGOcEVW757Y5cq7xr5
i6bpjSplAkEA6psz2LJMlPMtIohyNj4Zz70+BFXwMi2CkPX4dRULQt3BOg1xYjTK
HU1pxxJqJrER39MShd49SmPsC0k8Es1z7wJAPe8TrEQ3YO7ZYs74cxXK7Gf00RFS
HWIWxc7l/t1n2ECHo6gd9BrLeM40mIxi+M5AsSWlDutGdjT6Szu6k2ICVQJBAOf0
I0Kwpn7uH0XxWdq/c42tMU/gF+fEjz77sncwIz4tOgpHmD7cqqhmDZtBXap7j4yY
h8vLexW9zXcrJTYB5AkCQQDsOGFbNSJ7pB4UQ7DFlyM2hIZK2EI2x8BM4NMcWUJ5
H/Pre/iZ36wI9nyGq3LKKvyeAk25jYVTbV/t1nUsFi5k
-----END RSA PRIVATE KEY-----

PKCS1格式的私鑰格式是

-----BEGIN RSA PRIVATE KEY-----
 .......
-----END RSA PRIVATE KEY-----`

將PKCS1轉成PKCS8

  • 將PKCS1格式的私鑰粘貼到文本編輯器中,然后存儲為PKCS1.pem文件,如下圖


    存儲為PKCS1.pem
  • 生成的pem文件如下


    PKCS1.pem
  • 打開終端cd 切換到PKCS1.pem所在的路徑,并使用下面的命令將PKCS1.pem轉成PKCS8.pem

openssl pkcs8 -topk8 -inform PEM -in PKCS1.pem -outform PEM -nocrypt -out PKCS8.pem
  • 這樣就把PKCS1轉換成啦PKCS8,如下圖


    PKCS1.pem和PKCS8.pem
  • 在終端輸入 cat PKCS8.pem,可以看到PKCS8里面的內容如下

-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOVRPxKqYg6EdQoB
kYVEc5p9NVXWNtc7tb0sLk5VBakeBM12tSguUegx/AbBfvu+MqI5uS8mK1K7HWG4
PrEASYxgJsPQQbP0ZZSpZe/FxzhrCTSp1wo0jWa4qCj6bfXgVt4sSe9E5svXalOQ
5OB0oRDalosiPnu668ZOC3CBtvNLAgMBAAECgYBcsJxn9Qqxh4SvSLcDQQnhNh7q
1S1RjkcFceg9rUwecY3LZuIOnbppulp+eJPVOanJvL9HeYwlYpCbwRdGADG5keLI
PciOxuz7b2kRLGntVXL6EZ1GYbBlYOHdQBGQCq9ApqKFQvJ1cHMILl0g2HonRqTI
rTCyhAUbvIIabf9GMQJBAPo6k51UQSqRU2cL30TcWTwQfudNpn7b6LRBxr03hDto
zn6pnnBpSngQf6APlcY5wRVbvntjlyrvGvmLpumNKmUCQQDqmzPYskyU8y0iiHI2
PhnPvT4EVfAyLYKQ9fh1FQtC3cE6DXFiNModTWnHEmomsRHf0xKF3j1KY+wLSTwS
zXPvAkA97xOsRDdg7tlizvhzFcrsZ/TREVIdYhbFzuX+3WfYQIejqB30Gst4zjSY
jGL4zkCxJaUO60Z2NPpLO7qTYgJVAkEA5/QjQrCmfu4fRfFZ2r9zja0xT+AX58SP
PvuydzAjPi06CkeYPtyqqGYNm0FdqnuPjJiHy8t7Fb3NdyslNgHkCQJBAOw4YVs1
InukHhRDsMWXIzaEhkrYQjbHwEzg0xxZQnkf8+t7+JnfrAj2fIarcsoq/J4CTbmN
hVNtX+3WdSwWLmQ=
-----END PRIVATE KEY-----

PKCS8格式的私鑰

PKCS8格式的私鑰格式如下

-----BEGIN PRIVATE KEY-----
............
-----END PRIVATE KEY-----

附:openssl

  1. 生成RSA私鑰
openssl genrsa -out private.pem 1024

生成的是pkcs1格式的長度為1024的私鑰

  1. 根據私鑰生成對應的公鑰
openssl rsa -in private.pem -pubout -out public.pem
  1. 生成證書請求文件rsaCertReq.csr
openssl req -new -key private.pem -out rsaCerReq.csr

生成證書求情文件需要根據提示輸入一些信息。只需要跟著提示一步步走就行啦

  1. 生成證書rsaCert.crt,并設置有效時間為10年
openssl x509 -req -days 3650 -in rsaCerReq.csr -signkey private.pem -out rsaCert.crt
  1. 生成供iOS使用的公鑰文件public_key.der
openssl x509 -outform der -in rsaCert.crt -out public.der
  1. 生成供iOS使用的私鑰文件private_key.p12
openssl pkcs12 -export -out private.p12 -inkey private.pem -in rsaCert.crt

生成p12需要設置密碼

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容