Проверка HTTPS-клиентов с сертификатами, подписанными другими центрами сертификации, нежели центр сертификации сервера

Проверка HTTPS-клиентов с сертификатами, подписанными другими центрами сертификации, нежели центр сертификации сервера

У меня есть веб-сервер 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 или как лучше всего обрабатывать несколько приемлемых центров сертификации клиентских сертификатовдля необходимых команд.

Связанный контент