¿Son compatibles las restricciones de nombre X.509 en los certificados en OS X?

8

Tengo la siguiente "cadena" de certificados en una máquina de prueba en este momento:

  • Un certificado CA autofirmado en mi llavero y Trusted & Confiado por Firefox.
  • Un certificado CA con lo siguiente,

    X509v3 Name Constraints: critical
      Permitted:
        DNS:mydomain.net
        DNS:.mydomain.net
    
  • Un certificado que no sea de CA con la firma de lo anterior.

El servidor web de prueba sirve a los dos últimos certificados; el primero está marcado como "de confianza" en Keychain en OS X, en Firefox, y en mi lado de Linux, también en FF y por certutil .

En OS X, Firefox acepta la conexión como segura; Chrome y Safari no lo hacen. Parece que Chrome & Safari solo usa lo que el sistema operativo utiliza para fines de cifrado, por lo que aquí, el problema es OS X. Viendo el cert muestra:

"This certificate cannot be used (unrecognized critical extension)"

Extension: Name Constraints (2.5.29.30)
 Critical: YES
     Data: <a sequence of octets>

Estoy adivinando porque veo una secuencia de octetos, y no una buena vista decodificada (como hago con otras extensiones), que esta es la extensión que causa el error.

No puedo hacer que funcione en Linux tampoco bajo Chrome (funciona bien en FF, otra vez); allí, sin embargo, no parece poder encontrar el certificado raíz (mientras que en OS X puede); Creo que esto es porque no entiendo cómo aceptar mi certificado autofirmado. (Internet dice certutil , y he intentado casi todas las combinaciones de eso en vano).

    
pregunta Thanatos 31.07.2015 - 19:04
fuente

2 respuestas

3

No. Apple no admite esto.

La biblioteca Secure Transport de Apple no admite X.509's nameConstraints .

Hay un error en la base de datos de errores de Chromium sobre esto. Y se ha cerrado como WontFix . Desarrollador Ryan Sleevi dijo esto el 25 de agosto de 2014 (archivado aquí ):

  

Chrome se transfiere a la pila criptográfica del sistema operativo para su verificación.

     

Es un problema bien conocido y de larga data que Apple no implementa restricciones de nombre. Esto se aplica a todas las aplicaciones que utilizan SSL o bibliotecas de verificación de certificados de OS X (por ejemplo, Safari, Curl, Python, etc.)

Relacionado

respondido por el StackzOfZtuff 18.08.2015 - 07:59
fuente
-1

Si desea confiar en un certificado raíz (los certificados autofirmados son certificados raíz por definición) en OSX, consulte la siguiente publicación de Apple: enlace

¿Los tres certificados forman parte de una cadena de certificados (es decir, el certificado del servidor web (# 3) se encadena al certificado de la sub-CA (# 2) que se encadena al certificado raíz (# 1))? Es posible que también deba instalar la cadena de certificados en su servidor web, no solo confiar en el certificado raíz de su cliente. Entrust tiene una buena explicación de cómo hacer esto para varios servidores web: enlace .

    
respondido por el Scott 31.07.2015 - 21:29
fuente

Lea otras preguntas en las etiquetas