Зачем хранить сертификат Apache SSL и закрытый ключ в отдельных файлах?

11

В документации Apache mod_ssl для директив SSLCertificateFile и SSLCertificateKeyFile говорится, что «настоятельно не рекомендуется» хранить закрытый ключ и сертификат SSL в одном файле.

Теперь очевидно, что файл с закрытым ключом должен храниться в безопасности, но, если это так, есть ли какие-то особые риски при хранении сертификата в том же файле? Мне любопытно узнать, почему это поведение поддерживается, и все же настоятельно не рекомендуется без объяснения причин.

Vortura
источник

Ответы:

15

Файл сертификата SSL является блокировкой.
Файл ключа сертификата SSL является его ключом.

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

Это особенно верно, если у вас нет ключевой фразы в вашем ключе SSL (многие веб-серверы не имеют, чтобы позволить им автоматически запускаться в случае сбоя).


То, от чего вы защищаетесь, разделяя файлы, это ошибка Apache, которая заставляет его выгружать содержимое SSLCertificateFile(что должно быть общедоступным) в веб-клиент.
(Насколько мне известно, такой ошибки не существует или никогда не существовало, но Apache - большая и сложная часть программного обеспечения. Это вполне возможно.)

Если Apache создает этот файл и все, что в нем содержится, это SSL-сертификат (блокировка), проблем не возникает: каждый получает копию этого сертификата, когда все равно отправляет SSL-запрос на сервер.
Если файл также содержит ключ, у вас есть все шансы на безопасность - вся ваша модель шифрования взломана, и вам необходимо изменить ключи.

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

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

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

Крис С
источник