要了解SSL证书是什么以及它是如何工作的,其实很容易。但说到在服务器上安装,有时你可能会觉得这是一门火箭科学。
有如此多的SSL证书格式与特定的服务器要求挂钩,你更有可能感到困惑和沮丧,而不是从一开始就正确配置证书。但这种情况即将改变。
在本综合指南中,我们将剖析每种SSL证书格式和证书文件扩展名,并向你展示两种转换不同文件类型的方法。
让我们从基础知识开始。所有SSL证书都是x.509证书。这是公钥证书的标准格式,用一种名为“抽象语法符号一“的正式语言表达。关于X.509的结构,我们不再赘述;您可以在维基网站上阅读相关信息。我们在此讨论SSL证书格式,如DER、PEM、PKCS#7和PKCS#12。
区分它们的简单方法是看它们的编码。
PEM和PKCS#7使用BaseASCII(美国信息交换标准码)编码。对于包含文本的文件来说,这是一种流行的标准。
DER和PKCS#12使用二进制编码,这是一种仅由0和1组成的二进制数字系统。
由于格式和编码不同,SSL证书有许多文件扩展名。
SSL证书格式和文件扩展名
让我们仔细研究一下每种格式及其SSL证书文件扩展名。您将发现每个缩写背后的含义,以及什么系统最常用这个缩写。
DER格式
DER是DistinguishedEncodingRules的缩写,是一种二进制编码格式,在Windows以外很少使用。它包含在.der或.cer文件中。
PEM格式
PEM是最常用的SSL证书格式,也是你可能会遇到的格式。大多数CA都提供PEM格式的SSL证书,证书文件扩展名各不相同,如.pem、.crt、.cer或.key。
PEM是“隐私增强型电子邮件“(Privacy-EnhancedEmail)的缩写,您可能想知道电子邮件与SSL证书有什么关系?长话短说,PEM的主要工作失败了,但作为一种容器格式却得到了应用。
从本质上讲,PEM文件是Base64编码的DER文件,其中的0和1是用可打印字符序列编码的。这样,你就可以用任何文本编辑器(包括记事本)打开它们。
单个.pem文件可包含服务器证书、中间证书和私钥。另外,你也可以在单独的.crt或.cer文件中接收服务器证书和中间证书,而私钥可以存在.key文件中。
PKCS#7格式
PKCS是公钥加密标准的缩写。
PKCS#7是一种多用途SSL证书格式,用于分发加密数据。它主要用于Windows平台和JavaTomcat。
如今,我们使用的实际上是它的后继者CMS(加密信息语法),但就像SSL和TLS一样,旧名称已经变得太熟悉,无法取代。
PKSC#7有两种文件扩展名:.p7b或p7c。与PEM不同,PKCS#7不能存储私钥,只能存储主证书和中间证书。
PKCS#12格式
PKCS#12是另一种具有更高安全性的公共密码标准。与PEM文件一样,它可以在一个.pfx文件中包含整个SSL证书链和密钥对。主要区别在于PCKS#12是一个受密码保护的容器。
某些服务器系统会在生成CSR时提示输入密码,您可以使用密码打开.pfx文件。
SSL格式转换
既然你已经知道了SSL证书格式及其多种证书文件扩展名,那么是时候揭示你真正期待的东西了–如何将SSL证书转换成任何格式。
与大多数文件转换一样,有多种不同的方法。最快捷的方法是使用SSL自动转换工具。你只需选择所需的操作,例如将PEM转换为PKCS#7,上传文件,然后点击“转换”。
您也可以使用免费的OpenSSL软件库来转换SSL文件。该实用程序可在几乎所有现有服务器上启用SSL/TLS协议。许多平台和Linux发行版都预装了OpenSSL工具。对于Windows,您需要获取安装包。
将X.509转换为PEM
要将X.509转换为PEM,请在OpenSSL中运行以下命令:
opensslx509-incertificatename.cer-outformPEM-outcertificatename.pem
将DER转换为PEM
将二进制编码转换为Base64ASCII。
要将DER转换为PEM,请运行以下命令:
opensslx509-informder-incertificatename.der-outcertificatename.pem
将PEM转换为DER
Base65ASCII转换为二进制编码。
要将PEM转换为DER,请运行以下命令:
opensslx509-informder-incertificatename.der-outcertificatename.pem
将PEM转换为PKCS#7
.p7b文件不包括私人密钥。
要将PEM转换为PKCS#7,请运行以下命令:
opensslcrl2pkcs7-nocrl-certfilecertificatename.pem-outcertificatename.p7b-certfileCACert.cer
将PKCS#7转换为PEM
要将PKCS#7转换为PEM,请运行以下命令:
opensslpkcs7-print_certs-incertificatename.p7b-outcertificatename.pem
将PKCS#12转换为PEM
PKCS#12文件受密码保护。
要将PKCS#12转换为PEM,请运行以下命令:
opensslpkcs12-incertificatename.pfx-outcertificatename.pem
将PKCS7转换为PKCS12
这需要两个步骤。首先将P7B文件转换为CER,然后将CER和私钥合并为PFX。
opensslpkcs7-print_certs-incertificatename.p7b-outcertificatename.cer
opensslpkcs12-export-incertificatename.cer-inkeyprivateKey.key-outcertificatename.pfx-certfilecacert.cer
差不多就是这样。现在你可以快速转换任何类型的SSL文件并将其安装到服务器上。
了解SSL证书格式、证书文件扩展名以及如何将它们转换为所需配置是一项宝贵的技能,它将帮助你在任何系统上无缝安装SSL证书。
选择正确的SSL格式可确保网络服务器、电子邮件客户端和网络的稳定加密和安全连接。