Строго кажучи, вам ніколи не потрібна ланцюжок для функціонування 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- certs).