将一个pem附加到另一个pem

将一个pem附加到另一个pem

我发现一个博客帮助我通过 smtp.gmail.com 使用 SASL 身份验证中继 postfix。步骤之一是:

cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | \
              sudo tee -a /etc/postfix/smtp_cacert.pem

当我读到这样的东西时,我有点担心,因为我不完全确定如果我将解冻附加.pem到我的上会发生什么。我用以下.pem方法构建了:

openssl req -new -x509 -days 365 -nodes -out smtp_cacert.pem \
             -keyout smtp_cacert.key`...
  • 将 Thawte 附加.pem到我生成的解冻文件上有什么风险?
  • 当我将 Thawte 附加到我的 SSL 上时,这对 SSL 有何功能.pem

答案1

组合多个 PEM 文件的正确顺序是:

正确的PEM顺序如下:

-----BEGIN RSA PRIVATE KEY-----
(Your Private Key: your_domain_name.key)
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
(Your Primary SSL certificate: your_domain_name.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Intermediate certificate: IntermediaryCA.crt)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Root certificate: TrustedRoot.crt)
-----END CERTIFICATE-----

您没有(或不想包含在一个文件中)的任何一个都可以省略。但顺序是从最具体到最不具体。

  1. 钥匙
  2. 你的证书
  3. 中介CA证书
  4. 根CA证书

如果有多个中介,只需继续按顺序列出它们,与链的顺序相同。

并非所有程序都需要此顺序,有些程序会自行解决。但我经历过 Postfix 和 stunnel 都需要这个命令。

答案2

将 Thawte .pem 附加到我生成的文件上有什么风险?

没有任何。

当我将 Thawte .pem 附加到我的文件时,这对 SSL 有何功能?

将多个项目放在同一文件中使 SSL 库可以使用它们来启动连接。具体来说,如果一个或多个证书签署了与您正在使用的私钥相对应的证书,那么这些附加(通常是“中间”)证书将被发送到连接客户端,以帮助从某个受信任的根建立信任链安装在客户端计算机上的证书以及您用来保护会话的证书。

像这样:

[ Trusted root ] --signed--> [ Intermediate ] --signed--> [ Your Cert ]

如果客户端没有中间证书的副本,则他无法在受信任的根和您的证书之间建立链接。如果您在 SSL 协商期间提供它,那么他不需要已经收到副本。

答案3

当您像这样将它们连接在一起时,您所做的就是创建一个证书链。此 SO Q&A 解释了各种文件的格式,标题为:什么是 Pem 文件以及它与其他 OpenSSL 生成的密钥文件格式有何不同?。这可能是我见过的对不同文件格式的最好解释。

摘抄

  • .pem在 RFC 1421 到 1424 中定义,这是一种容器格式,可能仅包含公共证书(例如 Apache 安装和 CA 证书文件 /etc/ssl/certs),也可能包含整个证书链,包括公钥、私钥密钥和根证书。该名称来自隐私增强电子邮件,这是一种失败的安全电子邮件方法,但它使用的容器格式仍然存在。

相关内容