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

31

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

Agora estou essencialmente procurando o oposto de Como dividir um arquivo PEM

Há 4 arquivos que quero consolidar, originalmente criados para o Apache, estou procurando arquivos especificados por

  • SSLCertificateFile
  • SSLCertificateKeyFile
  • SSLCertificateChainFile
  • SSLCACertificateFile

O que mais me interessa é a ordem dos arquivos na derivada consolidada, isso é importante? POR EXEMPLO. se eu fosse apenas cat eles juntos na ordem em que aparecem acima, em um .pem , seria válido, ou deveria eles ser ordenados de uma maneira específica?

FYI, estou fazendo isso por usar esses certs como um único combinado .pem em SimpleSAMLphp .

    
por quickshiftin 07.02.2013 / 21:00

2 respostas

39

A ordem é importante, de acordo com a RFC 4346 .

Aqui está uma citação tirada diretamente da 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 da autoridade de segurança raiz (se auto-assinado). Não encontrei nenhuma informação sobre a chave privada, mas acho que isso não deve importar, pois é fácil identificar uma chave privada no pem quando ela começa e termina com o texto abaixo, que tem a palavra-chave PRIVATE nela.

 -----BEGIN RSA PRIVATE KEY-----
 -----END RSA PRIVATE KEY-----
    
por 07.02.2013 / 22:39
2

Aqui está o comando para combinar usando cat

cat first_cert.pem second_cert.pem > combined_cert.pem
    
por 20.06.2016 / 22:31