У меня есть веб-сервер apache, ssl, на котором есть сертификат сервера, подписанный надежным официальным центром сертификации. Могу ли я настроить apache ssl для приема клиентов с действительными сертификатами, подписанными ЦС, отличными от ЦС, подписавшего сертификат сервера?
Я получаю ssl_error_unknown_ca_alert
хотя я настроил другие центры сертификации в apache, и сервер запустился без ошибок. Я создал файл, содержащий сертификат ЦС ЦС, подписавшего сертификат сервера, и другие сертификаты ЦС, которым я хочу доверять. Затем я указал на SSLCertificateChainFile
директива к этому файлу.
Я использую Apache 2.2.22
Редактировать:
я использую
SSLCertificateFile
указывая на сертификат сервера
SSLCertificateKeyFile
установка на ключ сервера
SSLCertificateChainFile
указывая на цепочку сертификатов, которая подписала сертификат сервера
SSLCACertificateFile
указывая на файл со всеми цепочками сертификатов, которые я хочу принять
SSLVerifyClient require
SSLVerifyDepth 1
Apache распознает их все в журнале, когда я перезапускаю сервер, и ошибок нет. Тем не менее, у меня все еще есть ssl_error_certificate_unknown_alert
ошибка. Я также подтвердил, что цепочка сертификатов клиента присутствует в SSLCACertificateFile
путем сравнения текста в Meld.
Выяснил в чем проблема. Сертификат подписан цепочкой из 3 центров сертификации, и я установил SSLVerifyDepth на 1. Установите его на 10, и он сработал.
Я считаю, что вам нужен каталог, содержащий сертификаты, которые вы хотите использовать. Возможно, вам понадобится использовать магию SSL для создания символических ссылок для сертификатов. Видеть mod_ssl SSLCACertificatePath Правильное использование или лучший способ обработки нескольких допустимых центров сертификации сертификатов клиентов для необходимых команд.