數(shù)字證書文件格式(cer和pfx)的區(qū)別
PFX是帶有私鑰的證書(包含公鑰和私鑰)
由Public Key Cryptography Standards #12靴庆,PKCS#12標(biāo)準(zhǔn)定義讲逛,包含了公鑰和私鑰的二進(jìn)制格式的證書形式匣摘,以pfx作為證書文件后綴名(文件的擴(kuò)展名可以為pfx或p12)店诗。CER二進(jìn)制編碼的證書(只包含公鑰)
證書中沒有私鑰,DER 編碼二進(jìn)制格式的證書文件音榜,以cer作為證書文件后綴名庞瘸。Base64編碼的證書(只包含公鑰)
證書中沒有私鑰,BASE64 編碼格式的證書文件赠叼,也是以cer作為證書文件后綴名擦囊。
由定義可以看出,只有pfx格式的數(shù)字證書是包含有私鑰的梅割,cer格式的數(shù)字證書里面只有公鑰沒有私鑰霜第。
在pfx證書的導(dǎo)入過程中有一項(xiàng)是“標(biāo)志此密鑰是可導(dǎo)出的。這將您在稍候備份或傳輸密鑰”户辞。一般是不選中的泌类,如果選中,別人就有機(jī)會(huì)備份你的密鑰了底燎。如果是不選中刃榨,其實(shí)密鑰也導(dǎo)入了,只是不能再次被導(dǎo)出双仍。這就保證了密鑰的安全枢希。
如果導(dǎo)入過程中沒有選中這一項(xiàng),做證書備份時(shí)“導(dǎo)出私鑰”這一項(xiàng)是灰色的朱沃,不能選苞轿。只能導(dǎo)出cer格式的公鑰茅诱。如果導(dǎo)入時(shí)選中該項(xiàng),則在導(dǎo)出時(shí)“導(dǎo)出私鑰”這一項(xiàng)就是可選的搬卒。
如果要導(dǎo)出私鑰(pfx),是需要輸入密碼的瑟俭,這個(gè)密碼就是對(duì)私鑰再次加密,這樣就保證了私鑰的安全契邀,別人即使拿到了你的證書備份(pfx),不知道加密私鑰的密碼摆寄,也是無法導(dǎo)入證書的。相反坯门,如果只是導(dǎo)入導(dǎo)出cer格式的證書微饥,是不會(huì)提示你輸入密碼的。因?yàn)楣€一般來說是對(duì)外公開的古戴,不用加密
從pfx導(dǎo)出公欠橘、私鑰
從pfx提取密鑰信息,并轉(zhuǎn)換為key格式(pfx使用pkcs12模式補(bǔ)足)
提取密鑰對(duì)(如果pfx證書已加密允瞧,會(huì)提示輸入密碼简软。)
openssl pkcs12 -in 1.pfx -nocerts -nodes -out 1.key
從密鑰對(duì)提取私鑰
openssl rsa -in 1.key -out 1_pri.key
從密鑰對(duì)提取公鑰
openssl rsa -in 1.key -pubout -out 1_pub.key
因?yàn)镽SA算法使用的是pkcs8模式補(bǔ)足,需要對(duì)提取的私鑰進(jìn)一步處理(可選)
openssl pkcs8 -in 1_pri.key -out 1_pri.p8 -outform der -nocrypt -topk8
將pfx成一個(gè)cer
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
另:
apple developer中關(guān)于CSR證書請(qǐng)求文件(本機(jī)生成Cert Signing Request)述暂,它只是包含公鑰的一個(gè)文件文件痹升,傳到apple開發(fā)者網(wǎng)站,去下載apple的對(duì)此商家簽名后的公鑰畦韭,用以后續(xù)開發(fā)操作疼蛾。
另:如果生成tomcat需要的證書文件
keytool -import -v -trustcacerts -storepass 123456 -alias root -file xxx.im.crt -keystore xxx.jks