Файл сертификата SSL является блокировкой.
Файл ключа сертификата SSL является его ключом.
Хранить их вместе - все равно что приклеить ключ к замку на входной двери.
Если злоумышленник скомпрометирует один файл, у него есть все, что нужно для успешного олицетворения вашего сайта (сертификат и закрытый ключ).
Это особенно верно, если у вас нет ключевой фразы в вашем ключе SSL (многие веб-серверы не имеют, чтобы позволить им автоматически запускаться в случае сбоя).
То, от чего вы защищаетесь, разделяя файлы, это ошибка Apache, которая заставляет его выгружать содержимое SSLCertificateFile
(что должно быть общедоступным) в веб-клиент.
(Насколько мне известно, такой ошибки не существует или никогда не существовало, но Apache - большая и сложная часть программного обеспечения. Это вполне возможно.)
Если Apache создает этот файл и все, что в нем содержится, это SSL-сертификат (блокировка), проблем не возникает: каждый получает копию этого сертификата, когда все равно отправляет SSL-запрос на сервер.
Если файл также содержит ключ, у вас есть все шансы на безопасность - вся ваша модель шифрования взломана, и вам необходимо изменить ключи.
В старых версиях OpenSSL требовалось два отдельных файла (открытый и закрытый). Старые версии других механизмов шифрования требовали одного файла (оба в одном и том же файле). В духе совместимости (иначе говоря, админ жалуется на несогласованность и необходимость поддерживать два набора сертификатов), большинство теперь поддерживают оба.
Хранение обоих сертификатов (в том числе цепочки ключей) в одном файле не рекомендуется, поскольку разные сертификаты имеют разные области действия. Это скорее проблема согласованности, чем техническая, где публичный сертификат должен иметь общедоступные права доступа к файлам, и наоборот для частного. Нет опасности хранить ваш публичный сертификат под замком в ваших системах, это просто не соответствует его назначению.
источник