Comment combiner différents certificats en un seul fichier .pem

35

Je viens juste de finir de lire ce fil qui explique les différents formats SSL.

Maintenant, je cherche essentiellement le contraire de Comment diviser un fichier PEM

Il y a 4 fichiers que je veux consolider, créés à l'origine pour Apache, je regarde les fichiers spécifiés par

  • SSLCertificateFile
  • SSLCertificateKeyFile
  • SSLCertificateChainFile
  • SSLCACertificateFile

Ce qui m’intéresse surtout, c’est l’ordre des fichiers dans le fichier dérivée consolidé, est-ce important? PAR EXEMPLE. si je les mettais catensemble dans l'ordre dans lequel ils apparaissent en haut, dans un fichier .pem , serait-il valide ou devrait-on les commander d'une manière spécifique?

Pour votre information, je le fais pour utiliser ces certificats comme un simple fichier .pem combiné dans SimpleSAMLphp .

quickshiftin
la source
La commande doit être la clé privée, les certificats intermédiaires, votre certificat.
Zoredache
Qu'en est-il de l'autorité de certification, n'est-ce pas la racine de la chaîne, et donc, elle irait après la chaîne dans le fichier consolidé? Ou peut-il être entièrement omis?
quickshiftin
On dirait que c'est facultatif , je vais rouler sans rien pour le moment.
quickshiftin

Réponses:

43

La commande est importante, selon RFC 4346 .

Voici une citation directement tirée de la 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.

Sur la base de ces informations, le certificat de serveur doit venir en premier, suivi de tous les certificats intermédiaires et enfin du certificat d'autorité de confiance racine (s'il est auto-signé). Je ne pouvais trouver aucune information sur la clé privée, mais je pense que cela ne devrait pas avoir d'importance, car une clé privée en pem est facile à identifier car elle commence et se termine par le texte ci-dessous, qui contient le mot clé PRIVATE.

 -----BEGIN RSA PRIVATE KEY-----
 -----END RSA PRIVATE KEY-----
Daniel t.
la source
2
cat site.crt root.crt site.key> site.pem
curveorzos
6

Voici la commande à combiner en utilisant cat

cat first_cert.pem second_cert.pem > combined_cert.pem
tidileboss
la source
3
C'est une réponse sur la façon de concaténer deux certs, mais pas sur la manière de consolider / concaténer des certs pour Apache.
Asdmin
Ce n'est pas vraiment pour répondre à la question, la réponse acceptée est assez bonne. Je viens de fournir des informations supplémentaires sur la façon de concaténer, comme l'affiche originale parle de l'utilisation de chat, je pensais que cela pourrait aider les autres.
Tidileboss
2
Votre réponse n'indique pas dans quel ordre les fichiers doivent être concaténés (vous avez juste "first_cert.pem" et "second_cert.pem"). La bonne réponse seraitcat my_site.pem ca_chain.pem my_site.key > combined_cert.pem
Doktor J