如何将各种证书合并为单个.pem


35

我刚刚读完了这个伟大的线程解释不同的SSL格式。

现在,我实际上正在寻找与如何拆分PEM文件相反的内容

我要合并的文件有4个,最初是为Apache创建的,我正在查看的文件是

  • SSLCertificateFile
  • SSLCertificateKeyFile
  • SSLCertificateChainFile
  • SSLCACertificateFile

我最想知道的是合并dereivive中文件的顺序,这很重要吗?例如。如果我cat按照它们在上面出现的顺序将它们放在一起,放入.pem,这是否有效,还是应该以一种特定的方式对它们进行排序?

仅供参考,我这样做是使用这些证书作为组合单一的缘故。质子交换膜SimpleSAMLphp


订单应为私钥,中间证书,您的证书。
Zoredache

那么CA,那不是链的根,因此它将在合并文件中位于链的后面吗?还是可以完全省略?
quickshiftin

听起来像是可选的,我暂时不介绍它。
quickshiftin

Answers:


43

根据RFC 4346,顺序确实很重要。

这是直接取自RFC的报价:

  certificate_list
    This is a sequence (chain) of X.509v3 certificates.  The sender's
    certificate must come first in the list.  Each following
    certificate must directly certify the one preceding it.  Because
    certificate validation requires that root keys be distributed
    independently, the self-signed certificate that specifies the root
    certificate authority may optionally be omitted from the chain,
    under the assumption that the remote end must already possess it
    in order to validate it in any case.

根据此信息,服务器证书应首先出现,其次是所有中间证书,最后是根受信任的权威证书(如果是自签名的)。我找不到有关私钥的任何信息,但是我认为这没关系,因为pem中的私钥很容易识别,因为它以下面的文本开头和结尾,其中包含关键字PRIVATE

 -----BEGIN RSA PRIVATE KEY-----
 -----END RSA PRIVATE KEY-----

2
cat site.crt root.crt site.key> site.pem
curveorzos

6

这是结合使用的命令 cat

cat first_cert.pem second_cert.pem > combined_cert.pem

3
这是如何连接任意两个证书的答案,而不是如何合并/连接Apache的证书。
asdmin

这不是真的回答问题,接受的答案就足够了。我只是提供了有关如何连接的其他信息,正如原始张贴者所说的使用猫,我认为这可能会对其他人有所帮助。
tidileboss

2
您的答案没有指出文件的连接顺序(只有“ first_cert.pem”和“ second_cert.pem”)。正确的答案是cat my_site.pem ca_chain.pem my_site.key > combined_cert.pem
Doktor J
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.