openssl 進行證書格式的轉換

2021-09-08 14:59:32 字數 2046 閱讀 5572

各類證書由於儲存的內容不同(如是否包含公鑰/私鑰是否加密儲存/單一證書或多證書等)、採用編碼不同(der/base64)、標準不同(如pem/pkcs),所以儘管x.509標準規定了證書內容規範,但證書檔案還是五花八門。好在openssl對這些不同的標準都有著不錯的支援,可以用來進行不同格式證書的轉換。

大體來說,證書轉換要作的工作有這麼幾種

編碼轉換:der<-->base64 

不同證書標準的轉換:pkcs系列<-->pem/cer 

私鑰的增/減/提取/轉換 

... 

pem--der/cer(base64--der編碼的轉換)

openssl x509 -outform der -in certificate.pem -out certificate.der

pem--p7b(pem--pkcs#7)

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile cacert.cer

pem--pfx(pem--pkcs#12)

openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt -certfile cacert.crt

pem--p12(pem--pkcs#12)

openssl pkcs12 -export -out cert.p12 -in cert.pem -inkey key.pem

cer/der--pem(編碼der--base64)

openssl x509 -inform der -in certificate.cer -out certificate.pem

p7b--pem(pkcs#7--pem)

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

p7b--pfx(pkcs#7--pkcs#12)

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

openssl pkcs12 -export -in certificate.cer -inkey privatekey.key -out certificate.pfx -certfile cacert.cer

pfx/p12--pem(pkcs#12--pem)

openssl pkcs12 -in certificate.pfx -out certificate.cer

如無需加密pem中私鑰,可以新增選項-nodes;

如無需匯出私鑰,可以新增選項-nokeys; 

pem base64--x.509文字格式

openssl x509 -in key.pem -text -out cert.pem

pfx檔案中提取私鑰(.key)

openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key

pem--spc

openssl crl2pkcs7 -nocrl -certfile venus.pem -outform der -out venus.spc

pem--pvk(openssl 1.x開始支援)

openssl rsa -in mycert.pem -outform pvk -pvk-strong -out mypvk.pvk

pvk -in ca.key -out ca.pvk -nocrypt -topvk

pvk格式更多參考:

openssl對證書進行格式轉換

各類證書由於儲存的內容不同 如是否包含公鑰 私鑰是否加密儲存 單一證書或多證書等 採用編 碼不同 der base64 標準不同 如pem pkcs 所以儘管x.509標準規定了證書內容規範,但證書檔案還是五花八門。好在 openssl對這些不同的標準都有著不錯的支援,可以用來進行不同格式證書的轉換...

OpenSSL學習之使用PFX證書進行簽名和驗證

參考自openssl學習之使用個人資訊數字證書 pfx 進行簽名和驗證 但是原文有錯誤 故將修改後的重貼一遍 pragma comment lib,ssleay32.lib bool dosigndata const char szpkcs12filename,const char szpkcs12...

使用openssl製作證書和進行CMS格式數字簽名

openssl中有如下字尾名的檔案 key格式 私有的金鑰 csr格式 證書簽名請求 證書請求檔案 含有公鑰資訊,certificate signing request的縮寫 crt格式 證書檔案,certificate的縮寫 crl格式 證書吊銷列表,certificate revocation ...