SSL

关于TLS证书的各种格式概述

SSL证书格式详解与转换

一般来说,主流的 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 (又称PKCS12)文件: 这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护。

也可以使用记事本直接打开证书文件。如果显示的是规则的数字字母,例如:

-----BEGIN CERTIFICATE-----
MIIFkzCCBHugAwIBAgIQcZKW3MWHXoQMgt8dTNP96DANBgkqhkiG
…………………………………………………………………………………………………………………………………………
Yui89EyId0EShW+fHVppE+NUAnJLE96TFubyKWHY6Ce8xdJXaMEv
-----END CERTIFICATE-----

那么,该证书文件是文本格式的。

如果存在——BEGIN CERTIFICATE——,则说明这是一个证书文件。 如果存在—–BEGIN RSA PRIVATE KEY—–,则说明这是一个私钥文件。

证书格式转换

Certbase 提供以下证书格式转换工具

  • 将 JKS 格式证书转换成 PFX (PKCS12)格式
  • 将 PFX (PKCS12)格式证书转换为 JKS 格式
  • 将 PEM/KEY/CRT 格式证书转换为 PFX(PKCS12) 格式
  • 将 PFX(PKCS12)转换为 PEM/KEY/CRT
  • 将 JKS 转换为PEM/KEY/CRT