Firefox se niega a usar el certificado X509, y se queja "Cound no verifica este certificado por razones desconocidas"

0

Me topé con esta pregunta y respuesta . Tengo el mismo problema que el OP y lamento informar que la respuesta propuesta no lo resuelve. El certificado en cuestión ha sido verificado por OpenSSL-1.0.2h:

$ openssl verify -verbose -CAfile Forest\ CA\ 2\ RSA.pem -purpose sslclient yubi-sign-test.pem
yubi-sign-test.pem: OK

Aquí está su contenido:

 X509v3 extensions:
    X509v3 Basic Constraints: critical
        CA:FALSE
    X509v3 Key Usage: critical
        Digital Signature, Non Repudiation
    X509v3 Subject Alternative Name:
        email:[email protected]
    X509v3 Subject Key Identifier:
        75:35:D2:A3:47:A2:A1:20:AC:A3:90:DD:15:C2:A5:96:73:2B:75:9D
    X509v3 Extended Key Usage:
        TLS Web Client Authentication, Code Signing, 1.3.6.1.4.1.311.10.3.12, 1.2.840.113583.1.1.5, E-mail Protection, Microsoft Smartcardlogin
 Signature Algorithm: sha256WithRSAEncryption

Aquí está el contenido de la CA:

    X509v3 extensions:
        X509v3 Basic Constraints: critical
            CA:TRUE, pathlen:4
        X509v3 Subject Key Identifier: critical
            BD:1C:AE:9E:49:AE:68:B3:EC:7C:1E:AE:6A:CC:87:CB:F2:49:9E:A2
        X509v3 Key Usage: critical
            Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
        X509v3 Extended Key Usage: critical
            Time Stamping, OCSP Signing
        X509v3 Authority Key Identifier:
            keyid:BD:1C:AE:9E:49:AE:68:B3:EC:7C:1E:AE:6A:CC:87:CB:F2:49:9E:A2

Sin embargo, el actual Firefox estable (47.0) me está dando ese mismo mensaje y se niega a usar ese certificado para establecer una sesión TLS (ni siquiera lo ofrece entre los certificados disponibles). Muestra este certificado (entre otros) en Prefs- > Advanced- > View Certificates.

No hace falta decir que la CA que emitió este certificado se importó a "Autoridades" y se marcó como confiable para las tres opciones.

Lo único que se me ocurre es que esta CA no ofrece CRL ni OCSP, por lo que no es cierto que los certificados que emite tienen punteros a CRL o OCSP.

Una sugerencia que obtuve fue:

  

Bienvenido a Security SE. No dude en publicar su pregunta como una nueva pregunta que hace referencia a esta. Los detalles tanto de la CA como de los certificados de usuario final pueden ser útiles. Sin embargo, antes de hacerlo, debe intentar agregar el uso de la clave "Cifrado de clave" al certificado como primer paso. En caso de que no ayude, intente agregar "Cifrado de datos" y elimine "No rechazo" (o desactive la marca "Crítico" en estas extensiones).

El problema con lo anterior es que tenemos reglas bastante estrictas sobre los atributos de Uso Clave, en particular sobre los certificados que se aprovisionan a tokens de hardware. Por lo tanto, no es posible, por ejemplo, eliminar "No rechazar" de un certificado de firma digital, o agregarle "Codificación de clave". (Incluso en el improbable caso de que el estúpido Firefox de versión actual funcione con dicho certificado, no podríamos implementarlo).

Apreciaría cualquier ayuda.

    
pregunta Mouse 24.06.2016 - 23:39
fuente

1 respuesta

1

Al usar certificados de cliente, el servidor envía una lista de CA aceptables que emitieron el certificado de cliente. En función de esta lista, el navegador seleccionará el certificado de cliente correspondiente. Si no hay un certificado de cliente emitido por la CA esperado por el servidor, aparece el mensaje de error. Por lo tanto, el problema podría no ser el certificado en sí, sino simplemente que el servidor solo espera certificados emitidos por una CA diferente.

Para verificar qué CA espera usar el servidor para el certificado del cliente con el que se puede conectar con openssl:

 $ openssl s_client -connect host:443 -servername host
 ...
 Acceptable client certificate CA names
 /CN=ACEDICOM Root/OU=PKI/O=EDICOM/C=ES
 ...
    
respondido por el Steffen Ullrich 25.06.2016 - 07:10
fuente

Lea otras preguntas en las etiquetas