java處理加密檔案中常見的兩種數字證書檔案格式(cer和pfx)
數字證書檔案格式(cer和pfx)的差別
1.帶有私鑰的證書
由Public Key Cryptography Standards #12,PKCS#12标準定義,包含了公鑰和私鑰的二進制格式的證書形式,以pfx作為證書檔案字尾名。
2.二進制編碼的證書
證書中沒有私鑰,DER 編碼二進制格式的證書檔案,以cer作為證書檔案字尾名。
3.Base64編碼的證書
證書中沒有私鑰,BASE64 編碼格式的證書檔案,也是以cer作為證書檔案字尾名。
由定義可以看出,隻有pfx格式的數字證書是包含有私鑰的,cer格式的數字證書裡面隻有公鑰沒有私鑰。
在pfx證書的導入過程中有一項是“标志此密鑰是可導出的。這将您在稍候備份或傳輸密鑰”。一般是不選中的,如果選中,别人就有機會備份你的密鑰了。如果是不選中,其實密鑰也導入了,隻是不能再次被導出。這就保證了密鑰的安全。
如果導入過程中沒有選中這一項,做證書備份時“導出私鑰”這一項是灰色的,不能選。隻能導出cer格式的公鑰。如果導入時選中該項,則在導出時“導出私鑰”這一項就是可選的。
如果要導出私鑰(pfx),是需要輸入密碼的,這個密碼就是對私鑰再次加密,這樣就保證了私鑰的安全,别人即使拿到了你的證書備份(pfx),不知道加密私鑰的密碼,也是無法導入證書的。相反,如果隻是導入導出cer格式的證書,是不會提示你輸入密碼的。因為公鑰一般來說是對外公開的,不用加密
分