【轉(zhuǎn)載請注明出處】:https://blog.csdn.net/huahao1989/article/details/108292030
主流 Web 服務(wù)軟件證書
一般來說,主流的 Web 服務(wù)軟件,通常都基于 OpenSSL 和 Java 兩種基礎(chǔ)密碼庫。
-
Tomcat、Weblogic、JBoss等Web服務(wù)軟件,一般使用Java提供的密碼庫。通過Java Development Kit (JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的證書文件。 -
Apache、Nginx等Web服務(wù)軟件,一般使用OpenSSL工具提供的密碼庫,生成PEM、KEY、CRT等格式的證書文件。 - IBM的Web服務(wù)產(chǎn)品,如
Websphere、IBM Http Server(IHS)等,一般使用IBM產(chǎn)品自帶的iKeyman工具,生成KDB格式的證書文件。 - 微軟Windows Server中的
Internet Information Services(IIS)服務(wù),使用Windows自帶的證書庫生成PFX格式的證書文件。
判斷證書文件是文本格式還是二進制格式
您可以使用以下方法簡單區(qū)分帶有后綴擴展名的證書文件:
-
.DER或.CER文件: 這樣的證書文件是二進制格式,只含有證書信息,不包含私鑰。 -
.CRT文件: 這樣的證書文件可以是二進制格式,也可以是文本格式,一般均為文本格式,功能與.DER及.CER證書文件相同。 -
.PEM文件: 這樣的證書文件一般是文本格式,可以存放證書或私鑰,或者兩者都包含。.PEM文件如果只包含私鑰,一般用.KEY文件代替。 -
.PFX或.P12文件: 這樣的證書文件是二進制格式,同時包含證書和私鑰,且一般有密碼保護。
證書格式轉(zhuǎn)換
上面這張圖很直觀的說明了各種證書之間轉(zhuǎn)化的流程,只要每一步轉(zhuǎn)化成功其他的轉(zhuǎn)化都是每一步的組合。
JKS 和 PFX 相互轉(zhuǎn)化
PFX格式證書文件和JKS格式證書相互轉(zhuǎn)化可以使用JDK中自帶的keytool工具。
將JKS格式轉(zhuǎn)換成PFX格式
keytool -importkeystore -srckeystore server.jks -destkeystore server.pfx -srcstoretype JKS -deststoretype PKCS12
將PFX格式轉(zhuǎn)換成JKS格式
keytool -importkeystore -srckeystore server.pfx -srcstoretype PKCS12 -srcstorepass {pfx-password} -destkeystore server.jks -deststoretype JKS -deststorepass {jks-password} -alias {key-alias}
PFX 和 KEY&CRT 相互轉(zhuǎn)化
PEM/KEY/CRT格式證書和PFX格式互相轉(zhuǎn)換可以使用 OpenSSL工具。
將PFX轉(zhuǎn)換為PEM/KEY/CRT
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
此轉(zhuǎn)換步驟是專用于通過Keytool工具生成私鑰和CSR申請證書文件的,并且通過此方法您可以在獲取到PEM格式證書公鑰的情況下分離私鑰。
將PEM/KEY/CRT轉(zhuǎn)換為PFX
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
歡迎關(guān)注 “后端老鳥” 公眾號,接下來會發(fā)一系列的專題文章,包括Java、Python、Linux、SpringBoot、SpringCloud、Dubbo、算法、技術(shù)團隊的管理等,還有各種腦圖和學(xué)習(xí)資料,NFC技術(shù)、搜索技術(shù)、爬蟲技術(shù)、推薦技術(shù)、音視頻互動直播等,只要有時間我就會整理分享,敬請期待,現(xiàn)成的筆記、腦圖和學(xué)習(xí)資料如果大家有需求也可以公眾號留言提前獲取。由于本人在所有團隊中基本都處于攻堅和探路的角色,搞過的東西多,遇到的坑多,解決的問題也很多,歡迎大家加公眾號進群一起交流學(xué)習(xí)。
【轉(zhuǎn)載請注明出處】:https://blog.csdn.net/huahao1989/article/details/108292030