pem檔案, crt檔案, jks 檔案分別是什麼,他們有什麼關係? 這個領域內除了以上三種檔案外,還有哪些檔案格式?JDK 的 jre/lib/security/cacerts檔案屬於哪一種?

gongchengship發表於2024-07-16

在電腦保安和證書管理領域,PEM 檔案、CRT 檔案和 JKS 檔案是常用的幾種檔案格式,它們各自有不同的用途和特點。以下是對它們的詳細解釋,以及其他常見的檔案格式和 JDK 的 jre/lib/security/cacerts 檔案的說明。

PEM 檔案

PEM (Privacy Enhanced Mail) 是一種 Base64 編碼的檔案格式,常用於儲存證書、金鑰和其他加密資料。PEM 檔案通常以 .pem.crt.cer.key 等副檔名結尾。

  • PEM 檔案內容:包含 -----BEGIN-----END 標籤,標籤中間是 Base64 編碼的資料。
  • 用途:常用於證書和金鑰的傳輸和儲存,特別是在 UNIX/Linux 系統上。

CRT 檔案

CRT (Certificate) 檔案通常是指以 .crt 副檔名結尾的證書檔案。

  • CRT 檔案內容:可以是 PEM 編碼(Base64 編碼)或 DER 編碼(二進位制編碼)。
  • 用途:儲存 X.509 數字證書,通常包含公鑰。

JKS 檔案

JKS (Java KeyStore) 是 Java 特有的一種檔案格式,用於儲存加密金鑰和證書鏈。

  • JKS 檔案內容:二進位制格式,包含一個或多個金鑰和證書條目。
  • 用途:用於 Java 應用程式中的安全配置,比如 SSL/TLS 連線的配置。

檔案格式之間的關係

  • PEM 和 CRT:PEM 是一種編碼格式,CRT 是一種檔案型別。一個 CRT 檔案可以是 PEM 編碼的,包含證書的 Base64 編碼資料。
  • PEM 和 JKS:PEM 檔案和 JKS 檔案可以互相轉換。比如,一個 PEM 編碼的證書和金鑰可以被匯入到 JKS 檔案中,或者從 JKS 檔案中匯出。
  • CRT 和 JKS:CRT 檔案中的證書可以被匯入到 JKS 檔案中,通常透過中間格式(如 PKCS12)來實現。

其他常見的檔案格式

  • DER (Distinguished Encoding Rules):二進位制編碼的證書檔案,副檔名通常為 .der.cer
  • PFX / P12 (PKCS#12):一種用於儲存證書鏈和私鑰的檔案格式,副檔名通常為 .pfx.p12
  • P7B (PKCS#7):一種用於儲存證書或證書鏈的檔案格式,副檔名通常為 .p7b.p7c
  • KEY:用於儲存私鑰的檔案,通常是 PEM 編碼的,以 .key 結尾。

JDK 的 jre/lib/security/cacerts 檔案

JDK 的 jre/lib/security/cacerts 檔案是一個預設的 Java 信任庫(truststore),用於儲存受信任的根證書。這些根證書通常由權威 CA(證書頒發機構)簽發,用於驗證 SSL/TLS 連線中的證書鏈。

  • 型別:JKS(Java KeyStore)檔案。
  • 用途:為 Java 應用程式提供一個預先配置的信任庫,包含許多常見的 CA 證書。
  • 管理:可以使用 keytool 命令來檢視、新增或刪除 cacerts 檔案中的證書。

總結

  • PEM 檔案:常用於儲存證書和金鑰的 Base64 編碼格式檔案。
  • CRT 檔案:儲存證書的檔案,可以是 PEM 編碼或 DER 編碼。
  • JKS 檔案:Java 特有的金鑰庫檔案,儲存加密金鑰和證書鏈。
  • 其他檔案格式:包括 DER、PFX/P12、P7B 和 KEY 檔案等。
  • JDK 的 cacerts 檔案:一個包含受信任的根證書的 JKS 檔案,用於 Java 應用程式的 SSL/TLS 連線驗證。

相關文章