Каково назначение файлов chain.pem?

Каково назначение файлов chain.pem?

Общий вопрос о файлах chaim.pem; я использовал csr, полученный от моего хоста, и использовал Certbot из LetsEncrypt для генерации https-сертификата; я использовал следующую команду

$ certbot certonly --manual --csr файл-с-моим-csr.txt

Certbot создал 3 файла 0000_cert.pem, 0000_chain.pem, 0001_chain.pem; Затем я использовал файл cert.pem для установки сертификата обратно на свой хост; Все прошло довольно гладко;

У меня вопрос: для чего используются файлы «цепочки», поскольку я их нигде не использовал; в каких сценариях они будут полезны?

решение1

Ваш вывод Certbot немного необычен. Вы должны были получить файл "fullchain.pem", содержащий все в правильном порядке, а не как несколько отдельных файлов.

(Не говоря уже о самой ручной установке — ее придется автоматизировать.)

Мой вопрос в том, для чего используются файлы «цепочки»?

Все центры сертификации WebPKI имеют как минимум двухуровневую систему:

  1. Корневой сертификат CA, хранящийся в безопасном автономном режиме, подписывает промежуточные (выпускающие) сертификаты CA.
  2. Промежуточные центры сертификации, хранящиеся в сети, подписывают сертификаты сервера (конечного объекта).

Например,вот диаграмма отДавайте зашифруем,иерархия которых обычно выглядит следующим образом:

Root: "DST Root CA X3" (or possibly "ISRG Root X1")
\-- Issuing: "Let's Encrypt R3"
    \-- End-entity: "letsencrypt.org"

Большинство клиентов TLS (браузеры, операционные системы) поставляются только скореньпредустановленный сертификат. Таким образом, их не нужно обновлять каждый раз, когда CA меняет свою инфраструктуру — только когда сами CA добавляются или удаляются.

Однако для проверки подписи каждого сертификата вам необходимонуждатьсяиметь непосредственно предшествующий сертификат (например, вы не можете напрямую проверить подпись сертификата сервера, используя только корневой центр сертификации — между ними нет прямой криптографической связи).

Это означает, что клиент должен иметь все промежуточные сертификаты для завершения цепочки между корневым CA. Если какой-либо из промежуточных отсутствует, у клиента больше нет достаточной информации для проверки остальных.

Для HTTPS,начальныйМетод заключается в том, чтобы сервер отправил все свои сертификаты цепочки, поскольку предполагается, что они уже есть на сервере.

В некоторых веб-браузерах для этого предусмотрены альтернативные механизмы — например, Firefox сохраняет кэш «ранее просмотренных» промежуточных файлов, в то время как Windows пытается загрузить промежуточные файлы, используя URL-адрес AIA в вашем сертификате.

Но не все браузеры делают это, и, что важно, большинство не веб-клиентов TLSнеесть ли вообще такие альтернативы. Хотя неполная цепочка часто будет работать для HTTPS, она не будет работать для таких вещей, как SMTP или IRC.

Затем я использовал файл cert.pem для установки сертификата обратно на свой хост. Все прошло довольно гладко.

Скорее всего, это сработало только длянекоторыйпользователей (в первую очередь Windows и Firefox), но многие другие остались за бортом. Не думайте, что если это работает на вашей системе, то это должно работать и на всех остальных.

Такие инструменты, какSSL-лабораторииили gnutls-cli example.com:443предупредит вас о ситуациях, когда сервер не отправляет полную цепочку.

Однако возможно, что любой «ваш хост» также активно загружает промежуточные данные из информации AIA (я немного подозреваю, что IIS Windowsможетделать это), заполняя пробелы автоматически. Но если это где-то и делается, то довольно редко.

Регулярное использование Certbot

Обычно Certbot сохраняет полученные сертификаты в формате "готов к использованию" в /etc/letsencrypt/liveпапке, с fullchain.pem, содержащим сертификат хоста и любые необходимые родительские сертификаты. Например, в Apache httpd 2.4.x вы бы использовали:

SSLCertificateFile    /etc/letsencrypt/live/example.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.net/privkey.pem

решение2

Простое объяснение можно найтиздесь

Во-первых, что такое PEM:

PEM — это формат файла-контейнера, часто используемый для хранения криптографических ключей. Он используется для многих разных вещей, поскольку он просто определяет структуру и тип кодировки файла, используемого для хранения бита данных.

Что такое PEM-файл:

PEM — это просто стандарт; они содержат текст, и формат диктует, что файлы PEM начинаются с…

Файлы PEM, используемые с сертификатами SSL:

Файлы PEM с SSL-сертификатами

Файлы PEM используются для хранения сертификатов SSL и связанных с ними закрытых ключей. Несколько сертификатов находятся в полной цепочке SSL, и они работают в следующем порядке:

Сертификат конечного пользователя, который назначается вашему доменному имени центром сертификации (CA). Это файл, который вы используете в nginx и Apache для шифрования HTTPS. До четырех дополнительных промежуточных сертификатов, выдаваемых более мелким центрам сертификации высшими органами. Корневой сертификат, наивысший сертификат в цепочке, который самоподписан основным CA.

Так что же такое chain.pem?

chain.pem — это остальная часть цепочки; в данном случае это только корневой сертификат LetsEncrypt

Файлы chain.pemсодержат ваши промежуточные сертификаты.

При установке SSL-сертификата необходимо установить сертификат сайта, а также промежуточные сертификаты. Они важны. Как указаноздесь:

Промежуточный сертификат работает как замена корневого сертификата, поскольку корневой сертификат имеет свои собственные уровни безопасности, гарантирующие, что его ключи останутся недоступными. Промежуточный сертификат играет роль «Цепочки доверия» между сертификатом конечного субъекта и корневым сертификатом.

Издесь:

Все основные центры сертификации используют промежуточные сертификаты из-за дополнительного уровня безопасности. Это помогает минимизировать и компартментализировать ущерб в случае неправильной выдачи или события безопасности. Вместо того, чтобы отзывать корневой сертификат и буквально каждый сертификат, который он подписал, вы просто отзываете промежуточный, что только приводит к тому, что группа сертификатов, выпущенных этим промежуточным, становится недоверчивой.

Связанный контент