El cliente TLS 1.2 ignora la lista de "CA aceptable" para Apache ClientCertificateRequest

El cliente TLS 1.2 ignora la lista de "CA aceptable" para Apache ClientCertificateRequest

Tengo autenticación mutua TLS 1.2 funcionando en Apache 2.4.54 con una CA autofirmada y clientes de prueba en iOS y MacOS. Todo funciona, excepto que los clientes no reconocen la "CA de certificado de cliente aceptable" en la Solicitud de certificado, por lo que el usuario/aplicación debe saber cuál elegir. En mi aplicación de iOS, el URLAuthenticationChallenge.protectionSpace.distinguishedNamescampo que se supone que debe mostrar esta lista está vacío. En MacOS Safari, le pide al usuario que elija un certificado entre todos los instalados, aunque solo uno tiene la CA emisora ​​correcta. Usando

openssl s_client -connect myserver.com:443 -prexit

devoluciones

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

La configuración relevante de Apache es así.

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

Obtengo el mismo resultado sin SSLCADNRequestFile. Al mirar los registros de Apache, LogLevel trace8parece mostrar el nombre distinguido adecuado escrito en la Solicitud de certificado. Este es un volcado sin formato, por lo que no puedo leer los campos binarios, pero puedo ver el ASCII correcto para mi CA CN. Supongo que iOS/MacOS debe ver estos datos, pero decide que no son utilizables.

El certificado de CA tiene X509v3 Basic Constraints: CA:TRUEespecificaciones de uso de clave, pero no. Dado que la autenticación funciona, supongo que el certificado está bien, siempre que el cliente elija el certificado correcto.

¿Alguna idea de qué estoy haciendo mal o cómo depurar más?

Respuesta1

Me equivoqué. La lista de CA aceptable se envía a mi aplicación iOS (ya sea que incluya SSLCADNRequestFile o no). Hay dos devoluciones de llamada de la aplicación al inicio de la conexión y la lista de CA codificada en DER se entrega en la segunda. Todavía necesito descubrir por qué MacOS Safari me dio la opción de elegir certificados con una CA incorrecta, pero al menos se está entregando la lista.

información relacionada