Как объединить различные сертификаты в один.pem
Я только что закончил читать эту замечательную ветку, объясняющую различные форматы SSL.
Теперь я по существу ищу противоположность Как разделить файл PEM
Есть 4 файла, которые я хочу объединить, изначально созданные для Apache, я смотрю на файлы, указанные
- SSLCertificateFile
- SSLCertificateKeyFile
- SSLCertificateChainFile
- SSLCACertificateFile
Что меня больше всего интересует, так это порядок файлов в консолидированном деривативе, это важно? НАПРИМЕР. если бы я просто cat
они вместе в том порядке, в котором они указаны выше, в .pem, будет ли это допустимым, или они должны быть заказаны определенным образом?
К вашему сведению, я делаю это ради использования этих сертификатов как объединенного единственного .pem в SimpleSAMLphp.
2 ответа
Порядок имеет значение, в соответствии с 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-----
Вот команда для объединения с помощью cat
cat first_cert.pem second_cert.pem > combined_cert.pem