SSL證書格式詳解與轉換

  • A+
所屬分類:安全

一般來說,主流的 Web 服務軟件,通常都基于 OpenSSL 和 Java 兩種基礎密碼庫。

  • Tomcat、Weblogic、JBoss 等 Web 服務軟件,一般使用 Java 提供的密碼庫。通過 Java Development Kit (JDK)工具包中的 Keytool 工具,生成 Java Keystore(JKS)格式的證書文件。
  • Apache、Nginx 等 Web 服務軟件,一般使用 OpenSSL 工具提供的密碼庫,生成 PEM、KEY、CRT 等格式的證書文件。
  • IBM 的 Web 服務產品,如 Websphere、IBM Http Server(IHS)等,一般使用 IBM 產品自帶的 iKeyman 工具,生成 KDB 格式的證書文件。
  • 微軟 Windows Server 中的 Internet Information Services(IIS)服務,使用 Windows 自帶的證書庫生成 PFX 格式的證書文件。

判斷證書文件是文本格式還是二進制格式

  • *.DER 或 *.CER 文件: 這樣的證書文件是二進制格式,只含有證書信息,不包含私鑰。
  • *.CRT 文件: 這樣的證書文件可以是二進制格式,也可以是文本格式,一般均為文本格式,功能與 *.DER 及 *.CER 證書文件相同。
  • *.PEM 文件: 這樣的證書文件一般是文本格式,可以存放證書或私鑰,或者兩者都包含。 *.PEM 文件如果只包含私鑰,一般用 *.KEY 文件代替。
  • *.PFX 或 *.P12 文件: 這樣的證書文件是二進制格式,同時包含證書和私鑰,且一般有密碼保護。

也可以使用記事本直接打開證書文件。如果顯示的是規則的數字字母,例如:

那么,該證書文件是文本格式的。

  • 如果存在——BEGIN CERTIFICATE——,則說明這是一個證書文件。
  • 如果存在—–BEGIN RSA PRIVATE KEY—–,則說明這是一個私鑰文件。

證書格式轉換

以下證書格式之間是可以互相轉換的。

openssl

可使用以下方式實現證書格式之間的轉換:

1. 將 JKS 格式證書轉換成 PFX 格式

使用 JDK 中自帶的 Keytool 工具,將 JKS 格式證書文件轉換成 PFX 格式。

例如,可以執行以下命令將 server.jks 證書文件轉換成 server.pfx 證書文件:

2. 將 PFX 格式證書轉換為 JKS 格式

使用 JDK 中自帶的 Keytool 工具,將 PFX 格式證書文件轉換成 JKS 格式。

例如,可以執行以下命令將 server.pfx 證書文件轉換成 server.jks 證書文件:

3. 將 PEM/KEY/CRT 格式證書轉換為 PFX 格式

可以使用?OpenSSL工具,將 KEY 格式密鑰文件和 CRT 格式公鑰文件轉換成 PFX 格式證書文件。

例如,將 KEY 格式密鑰文件(server.key)和 CRT 格式公鑰文件(server.crt)拷貝至 OpenSSL 工具安裝目錄,使用 OpenSSL 工具執行以下命令將證書轉換成 server.pfx證書文件:

4. 將PFX轉換為PEM/KEY/CRT

可以使用?OpenSSL工具,將 PFX 格式證書文件轉化為 KEY 格式密鑰文件和 CRT 格式公鑰文件。

例如,將 PFX 格式證書文件拷貝至 OpenSSL 安裝目錄,使用 OpenSSL 工具執行以下命令將證書轉換成 server.pem 證書文件、KEY 格式密鑰文件(server.key)和 CRT 格式公鑰文件(server.crt):

此轉換步驟是專用于通過 Keytool 工具生成私鑰和 CSR 申請證書文件的,并且通過此方法可以在獲取到 PEM 格式證書公鑰的情況下分離私鑰。在實際部署數字證書時,請使用通過此轉換步驟分離出來的私鑰和申請得到的公鑰證書匹配進行部署。

weinxin
微信公眾號
掃一掃關注運維生存時間公眾號,獲取最新技術文章~

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前評論:1   其中:訪客  1   博主  0

    • 碼客 1

      好在現在都用上了https