您好,登錄后才能下訂單哦!
???????? 各類證書(shū)由于存儲(chǔ)的內(nèi)容不同(如是否包含公鑰/私鑰是否加密存儲(chǔ)/單一證書(shū)或多證書(shū)等)、采用編碼不同(DER/BASE64)、標(biāo)準(zhǔn)不同(如PEM/PKCS),所以盡管X.509標(biāo)準(zhǔn)規(guī)定了證書(shū)內(nèi)容規(guī)范,但證書(shū)文件還是五花八門。
??????????? 在實(shí)際應(yīng)用中經(jīng)常會(huì)要求進(jìn)行證書(shū)格式轉(zhuǎn)化,比如在配置VMware Operation Manager 和Identity Manager等Linux場(chǎng)景下的證書(shū)服務(wù)器時(shí)要求使用的是PEM編碼格式的證書(shū),但是很多人手上只有CER格式的證書(shū)。好在openssl對(duì)這些不同的標(biāo)準(zhǔn)都有著不錯(cuò)的支持,可以用來(lái)進(jìn)行不同格式證書(shū)的轉(zhuǎn)換。本文章將會(huì)以Identity Manager場(chǎng)景下的SSL格式轉(zhuǎn)換為例進(jìn)行演示講解
本環(huán)境中將會(huì)有企業(yè)內(nèi)的CA證書(shū)頒發(fā)機(jī)構(gòu)為其進(jìn)行證書(shū)頒發(fā),所以獲取的證書(shū)格式為Windows易于識(shí)別的Cer或者pfx格式。首先我們將該證書(shū)導(dǎo)出
對(duì)于本環(huán)境的Identity Manager需要用到私鑰,故此選擇導(dǎo)出私鑰
注:一般情況下需要用到pem格式的證書(shū)都需要導(dǎo)出和識(shí)別證書(shū)
勾選導(dǎo)出私鑰后,文件格式只能選擇pfx
設(shè)置密碼
選擇導(dǎo)出路徑
導(dǎo)出完成
同時(shí)我們也要導(dǎo)出企業(yè)的根證書(shū)頒發(fā)機(jī)構(gòu)的證書(shū)進(jìn)行導(dǎo)出
根證書(shū)選擇不導(dǎo)出私鑰。注:將根證書(shū)頒發(fā)機(jī)構(gòu)的證書(shū)導(dǎo)出是一件很危險(xiǎn)的事情
證書(shū)格式我們選擇“base64編碼”
導(dǎo)出完成
至此我們已經(jīng)獲得一個(gè)服務(wù)器證書(shū)以及一個(gè)對(duì)應(yīng)的根證書(shū)頒發(fā)機(jī)構(gòu)的證書(shū),接下來(lái)就可以通過(guò)openssl進(jìn)行證書(shū)格式轉(zhuǎn)換。
在安裝openssl前,請(qǐng)先在系統(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 開(kāi)發(fā)的軟件。下載完成后點(diǎn)擊安裝,默認(rèn)情況下其會(huì)安裝在C盤根目錄
通過(guò)cmd進(jìn)入安裝目錄的bin目錄
首先將pfx格式轉(zhuǎn)換為pem格式
并通過(guò)以下命令將上述導(dǎo)出的證書(shū)轉(zhuǎn)換成pem格式(不含私鑰)
openssl pkcs12 -in c:\idm.pfx -clcerts -nokeys -out c:\idm.pem
(上述命令就是通過(guò)openssl將idm.pfx這個(gè)pkcs12格式的證書(shū)轉(zhuǎn)換成pem格式,其中-nokeys為指定如無(wú)需導(dǎo)出私鑰,命令中需要根據(jù)自己情況制定具體的證書(shū)位置)
接著通過(guò)命令將私鑰也轉(zhuǎn)換成pem格式,并且在轉(zhuǎn)換輸出過(guò)程中要求輸入密碼
openssl pkcs12 -in c:\idm.pfx -nocerts -out c:\idm.key.pem
(-nocerts為控制不轉(zhuǎn)換證書(shū) 只轉(zhuǎn)換私鑰)
最后再通過(guò)命令將這個(gè)pem格式的私鑰轉(zhuǎn)換成rsa
打開(kāi)C盤 可以看到其已經(jīng)生成一個(gè)pem格式的證書(shū)以及pem格式的私鑰
最后也要將根證書(shū)轉(zhuǎn)換成pem格式
也就是實(shí)現(xiàn)從CER格式轉(zhuǎn)化為PEM的過(guò)程命令如下
openssl.exe x509 -in c:\rootca.cer -out c:\rootca.pem
當(dāng)然openssl除了可以實(shí)現(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
如無(wú)需加密pem中私鑰,可以添加選項(xiàng)-nodes;如無(wú)需導(dǎo)出私鑰,可以添加選項(xiàng)-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開(kāi)始支持)
?????? openssl rsa -in mycert.pem -outform PVK -pvk-strong -out mypvk.pvk
PEM--PVK(對(duì)于openssl 1.x之前的版本,可以下載PVK轉(zhuǎn)換器通過(guò)以下命令完成)
?????? pvk -in ca.key -out ca.pvk -nocrypt -topvk
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。