???????? 各類證書由于存儲的內(nèi)容不同(如是否包含公鑰/私鑰是否加密存儲/單一證書或多證書等)、采用編碼不同(DER/BASE64)、標(biāo)準(zhǔn)不同(如PEM/PKCS),所以盡管X.509標(biāo)準(zhǔn)規(guī)定了證書內(nèi)容規(guī)范,但證書文件還是五花八門。
十載的合作網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整合作建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“合作網(wǎng)站設(shè)計”,“合作網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
??????????? 在實際應(yīng)用中經(jīng)常會要求進行證書格式轉(zhuǎn)化,比如在配置VMware Operation Manager 和Identity Manager等Linux場景下的證書服務(wù)器時要求使用的是PEM編碼格式的證書,但是很多人手上只有CER格式的證書。好在openssl對這些不同的標(biāo)準(zhǔn)都有著不錯的支持,可以用來進行不同格式證書的轉(zhuǎn)換。本文章將會以Identity Manager場景下的SSL格式轉(zhuǎn)換為例進行演示講解
本環(huán)境中將會有企業(yè)內(nèi)的CA證書頒發(fā)機構(gòu)為其進行證書頒發(fā),所以獲取的證書格式為Windows易于識別的Cer或者pfx格式。首先我們將該證書導(dǎo)出
對于本環(huán)境的Identity Manager需要用到私鑰,故此選擇導(dǎo)出私鑰
注:一般情況下需要用到pem格式的證書都需要導(dǎo)出和識別證書
勾選導(dǎo)出私鑰后,文件格式只能選擇pfx
設(shè)置密碼
選擇導(dǎo)出路徑
導(dǎo)出完成
同時我們也要導(dǎo)出企業(yè)的根證書頒發(fā)機構(gòu)的證書進行導(dǎo)出
根證書選擇不導(dǎo)出私鑰。注:將根證書頒發(fā)機構(gòu)的證書導(dǎo)出是一件很危險的事情
證書格式我們選擇“base64編碼”
導(dǎo)出完成
至此我們已經(jīng)獲得一個服務(wù)器證書以及一個對應(yīng)的根證書頒發(fā)機構(gòu)的證書,接下來就可以通過openssl進行證書格式轉(zhuǎn)換。
在安裝openssl前,請先在系統(tǒng)中安裝 Microsoft Visual C++ 2008 redistributable Package (x86)。要下載軟件包,(下載地址:
https://www.microsoft.com/en-us/download/confirmation.aspx?id=29)
下載適用于OpenSSL x86 的 Shining Light Productions 安裝程序,,下載網(wǎng)址為 Shining Light Productions。這是 OpenSSL Project 開發(fā)的軟件。下載完成后點擊安裝,默認情況下其會安裝在C盤根目錄
通過cmd進入安裝目錄的bin目錄
首先將pfx格式轉(zhuǎn)換為pem格式
并通過以下命令將上述導(dǎo)出的證書轉(zhuǎn)換成pem格式(不含私鑰)
openssl pkcs12 -in c:\idm.pfx -clcerts -nokeys -out c:\idm.pem
(上述命令就是通過openssl將idm.pfx這個pkcs12格式的證書轉(zhuǎn)換成pem格式,其中-nokeys為指定如無需導(dǎo)出私鑰,命令中需要根據(jù)自己情況制定具體的證書位置)
接著通過命令將私鑰也轉(zhuǎn)換成pem格式,并且在轉(zhuǎn)換輸出過程中要求輸入密碼
openssl pkcs12 -in c:\idm.pfx -nocerts -out c:\idm.key.pem
(-nocerts為控制不轉(zhuǎn)換證書 只轉(zhuǎn)換私鑰)
最后再通過命令將這個pem格式的私鑰轉(zhuǎn)換成rsa
打開C盤 可以看到其已經(jīng)生成一個pem格式的證書以及pem格式的私鑰
最后也要將根證書轉(zhuǎn)換成pem格式
也就是實現(xiàn)從CER格式轉(zhuǎn)化為PEM的過程命令如下
openssl.exe x509 -in c:\rootca.cer -out c:\rootca.pem
當(dāng)然openssl除了可以實現(xiàn)pfx以及Cer向pem格式轉(zhuǎn)換外, 還支持很多其他格式的轉(zhuǎn)換,基本參考如下:
PEM--DER/CER(BASE64--DER編碼的轉(zhuǎn)換)
?????? openssl x509 -outform der -in certificate.pem -out certificate.der
EM--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;如無需導(dǎo)出私鑰,可以添加選項-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
PEM--PVK(對于openssl 1.x之前的版本,可以下載PVK轉(zhuǎn)換器通過以下命令完成)
?????? pvk -in ca.key -out ca.pvk -nocrypt -topvk