Como combinar vários certificados em um único .pem

35

Acabei de ler este ótimo tópico explicando os diferentes formatos SSL.

Agora, basicamente, estou procurando o oposto de Como dividir um arquivo PEM

Há 4 arquivos que quero consolidar, originalmente criados para o Apache. Estou vendo os arquivos especificados por

  • SSLCertificateFile
  • SSLCertificateKeyFile
  • SSLCertificateChainFile
  • SSLCACertificateFile

O que mais me interessa é a ordem dos arquivos no dereivative consolidado, isso é importante? POR EXEMPLO. se eu catos juntasse na ordem em que eles aparecem acima, em um .pem , seria válido ou eles deveriam ser pedidos de uma maneira específica?

Para sua informação, estou fazendo isso por uma questão de usar esses certificados como um .pem único combinado no SimpleSAMLphp .

troca rápida
fonte
O pedido deve ser chave privada, certificados intermediários, seu certificado.
Zoredache
E a CA, essa não é a raiz da cadeia e, portanto, iria atrás da cadeia no arquivo consolidado? Ou pode ser totalmente omitido?
precisa
Parece que é opcional , eu vou rolar sem ele por enquanto.
quickshiftin

Respostas:

43

A ordem importa, de acordo com a RFC 4346 .

Aqui está uma citação tirada diretamente do 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.

Com base nessas informações, o certificado do servidor deve vir primeiro, seguido por qualquer certificado intermediário e, finalmente, o certificado de autoridade confiável raiz (se autoassinado). Não consegui encontrar nenhuma informação sobre a chave privada, mas acho que isso não deve importar, porque é fácil identificar uma chave privada no pem, pois começa e termina com o texto abaixo, que contém a palavra PRIVATE- chave .

 -----BEGIN RSA PRIVATE KEY-----
 -----END RSA PRIVATE KEY-----
Daniel t.
fonte
2
gato site.crt root.crt site.key> site.pem
curveorzos
6

Aqui está o comando para combinar usando cat

cat first_cert.pem second_cert.pem > combined_cert.pem
tidileboss
fonte
3
É uma resposta sobre como concatenar dois certificados, mas não como consolidar / concatenar certificados para o Apache.
asdmin 21/06
Isso não é realmente para responder à pergunta, a resposta aceita é boa o suficiente. Eu apenas forneço informações adicionais sobre como concatenar, como o pôster original falava sobre o uso de gato, achei que poderia ajudar outras pessoas.
Tidileboss
2
Sua resposta não indica em que ordem os arquivos devem ser concatenados (você tem apenas "first_cert.pem" e "second_cert.pem"). A resposta correta seriacat my_site.pem ca_chain.pem my_site.key > combined_cert.pem
Doktor J 23/02