Клиент TLS 1.2 игнорирует список «Приемлемых ЦС» для Apache ClientCertificateRequest

Клиент TLS 1.2 игнорирует список «Приемлемых ЦС» для Apache ClientCertificateRequest

У меня есть взаимная аутентификация TLS 1.2, работающая на Apache 2.4.54 с самоподписанным CA и тестовыми клиентами на iOS и MacOS. Все работает, за исключением того, что клиенты не распознают «Acceptable client certificate CA» в CertificateRequest, поэтому пользователь/приложение должны знать, какой выбрать. В моем приложении iOS поле, URLAuthenticationChallenge.protectionSpace.distinguishedNamesкоторое должно предоставить этот список, пусто. В MacOS Safari он просит пользователя выбрать сертификат среди всех установленных, хотя только у 1 есть правильный CA издателя. Используя

openssl s_client -connect myserver.com:443 -prexit

возвращается

Acceptable client certificate CA names
/C=US/ST=x/L=x/O=x/OU=x/CN=myca.com/emailAddress=x

Соответствующая конфигурация Apache выглядит следующим образом.

SSLCACertificateFile /etc/pki/CA/cacert.pem
SSLCADNRequestFile /etc/pki/CA/cacert.pem
SSLVerifyClient require
SSLVerifyDepth  1

Я получаю тот же результат без SSLCADNRequestFile. Просмотр журналов Apache с, LogLevel trace8кажется, показывает, что правильное отличительное имя записывается в CertificateRequest. Это сырой дамп, поэтому я не могу прочитать двоичные поля, но я вижу правильный ASCII для моего CA CN. Я предполагаю, что iOS/MacOS должны видеть эти данные, но решают, что они не могут быть использованы.

Сертификат CA имеет X509v3 Basic Constraints: CA:TRUE, но не keyUsage specs. Поскольку аутентификация работает, я предполагаю, что с сертификатом все в порядке, пока клиент выбирает правильный сертификат.

Есть идеи, что я делаю не так или как отладить дальше?

решение1

Я ошибался. Список допустимых CA доставляется в мое приложение iOS (независимо от того, включаю ли я SSLCADNRequestFile или нет). В начале соединения есть два обратных вызова приложения, и список CA в кодировке DER доставляется во второй раз. Мне все еще нужно выяснить, почему MacOS Safari предоставил мне возможность выбрать сертификаты с неправильным CA, но, по крайней мере, список доставляется.

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