Як поєднувати різні сертифікати в єдиний .pem


35

Я щойно закінчив читати цю чудову нитку, пояснюючи різні формати SSL.

Тепер я по суті шукаю протилежне, як розділити файл PEM

Є 4 файли, які я хочу об'єднати, спочатку створені для Apache, я переглядаю файли, визначені

  • SSLCertificateFile
  • SSLCertificateKeyFile
  • SSLCertificateChainFile
  • SSLCACertificateFile

Мені найбільше цікаво - це порядок файлів у консолідованому деривативі, це важливо? EG. якби я був лише catїх разом у порядку, який вони з'явилися вище, в .pem , чи було б це дійсним, або вони повинні бути замовлені певним чином?

FYI, я роблю це заради використання цих сертифікатів як комбінованого синглу .pem у SimpleSAMLphp .


Замовлення має бути приватним ключем, проміжними сертифікатами, вашим сертифікатом.
Зоредаче

Що з CA, чи не це корінь ланцюга, і тому він піде за ланцюгом у консолідованому файлі? Або його можна повністю пропустити?
quickshiftin

Здається, що це необов’язково , я зараз прокатую без цього.
quickshiftin

Відповіді:


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.
асдмін

Це насправді не для відповіді на запитання, прийнята відповідь досить хороша. Я просто надаю додаткову інформацію про те, як об'єднатись, так як оригінальний плакат говорив про використання кота, я думав, що це може допомогти іншим.
tidileboss

2
У вашій відповіді не вказано, в якому порядку потрібно об'єднати файли (у вас просто "first_cert.pem" і "second_cert.pem"). Правильною відповіддю було бcat my_site.pem ca_chain.pem my_site.key > combined_cert.pem
Doktor J
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.