Строго говоря, вам никогда не понадобится цепочка для работы SSL.
То, что вам всегда нужно , это SSLCertificateFile
наличие SSLCertificateKeyFile
правильного ключа для этого сертификата.
Проблема в том, что если все, что вы даете Apache, это сертификат, то все, что он должен дать подключающимся клиентам, - это сертификат, который не рассказывает всей истории об этом SSL-сертификате. Он говорит: «Я подписан кем-то, но я не собираюсь рассказывать вам о них».
Обычно это работает нормально, так как большинство клиентских систем имеют большое хранилище сертификатов CA (как корневых, так и промежуточных), которые могут проверяться на предмет наличия соответствующих отношений подписи для установления доверия. Однако иногда это не работает; чаще всего вы сталкиваетесь с тем, что клиент не имеет сертификата для промежуточного центра сертификации, подписавшего ваш сертификат.
Вот где цепь вступает; это позволяет Apache точно показать клиенту, как выглядят доверительные отношения, что может помочь клиенту заполнить пробелы между вашим сертификатом, корнем, которому они доверяют, и промежуточным звеном, о котором они не знают. Цепочка может быть включена в вашу конфигурацию одним из двух способов:
- Встраивается в тот же файл, который вы установили для себя
SSLCertificateFile
, в новых строках после сертификата сервера по порядку (корень должен быть внизу). Если вы настроите его так, вам нужно SSLCertificateChainFile
указать тот же файл, что и SSLCertificateFile
.
- В отдельном файле, настроенном в
SSLCertificateChainFile
директиве; сертификат CA, выдавший сертификат сервера, должен быть первым в файле, а затем все остальные в корне.
Проверьте файл сертификата, который у вас есть сейчас - держу пари, что в него не включены данные цепочки. Который обычно работает нормально, но в конечном итоге вызовет проблемы с тем или иным браузером.
/etc/ssl
,/usr/local/etc/ssl
или вssl
подкаталоге , специфичного для веб - сайта (например ,/home/www/example.com/data
имеет веб - сайт , тоhome/www/example.com/ssl
имеет сертификаты).