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