keytool VS openssl keytool 和 openssl 是倆個證書管理工具。 keytool 是 java JDK 自帶的證書管理工具,使用 keytool 可以生成密鑰,創建證書。只要裝了 jdk,並正確設置了環境變數,就可以之間通過命令行執行 keytool 命令來管理證書。 ...
keytool VS openssl
keytool 和 openssl 是倆個證書管理工具。
keytool 是 java JDK 自帶的證書管理工具,使用 keytool 可以生成密鑰,創建證書。只要裝了 jdk,並正確設置了環境變數,就可以之間通過命令行執行 keytool 命令來管理證書。
openssl 則是一個開源的安全套接字層密碼庫,功能比 keytool 更加豐富。
X.509 VS PKCS
PKCS 全稱 Public-Key Cryptography Standards
,即公鑰標準,PKCS 已經發佈了15個標準。
- PKCS#12 包含了公鑰和私鑰的二進位格式的證書形式,以
.pfx
作為證書文件尾碼。
X.509 則是一個通用的證書標準,規定了證書應該包含哪些內容,X.509 通常有倆種編碼方式,一種是二進位編碼,另一種是 Base64 編碼。
- X.509#DER 二進位格式證書,常用尾碼
.cer
.crt
- X.509#PEM 文本格式證書,常用尾碼
.pem
證書文件格式
文件尾碼 | 文件類型 | 說明 |
---|---|---|
.DER或.CER | 二進位格式 | 只含有證書信息,不包含私鑰。 |
*.CRT | 二進位格式或文本格式 | 只含有證書信息,不包含私鑰。 |
*.PEM | 文本格式 | 一般存放證書或私鑰,或同時包含證書和私鑰。.PEM文件如果只包含私鑰,一般用.KEY文件代替。 |
.PFX或.P12 | 二進位格式 | 同時包含證書和私鑰,且一般有密碼保護。 |
證書格式之間是可以互相轉化的。用到的時候查對應的 openssl 或 keytool 命令就好了。
您可以使用記事本直接打開證書文件。如果顯示的是規則的數字字母(如下所示內容),那麼該證書文件是文本格式。
—–BEGIN CERTIFICATE—–
MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
—–END CERTIFICATE—–
- 如果存在
——BEGIN CERTIFICATE——
,則說明這是一個證書文件。 - 如果存在
—–BEGIN RSA PRIVATE KEY—–
,則說明這是一個私鑰文件。
常見Web服務軟體
常見的 Web 服務軟體,通常都基於 OpenSSL 和 Java 兩種基礎密碼庫。
-
Tomcat、Weblogic、JBoss 等 Web 服務軟體,一般使用 Java 提供的密碼庫。通過 Java Development Kit(JDK)工具包中的 Keytool 工具,生成 Java Keystore(JKS)、keystore 格式的證書文件。
.keystore
和.jks
都是 java 用來存放密鑰的文件。它使用戶能夠管理自己的公鑰/私鑰對及相關證書,用於(通過數字簽名)自我認證(用戶向別的用戶/服務認證自己)或數據完整性以及認證服務。它還允許用戶儲存他們的通信對等者的公鑰(以證書形式)。 -
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 格式的證書文件。