Generando un certificado SSL propio utilizando DSC emitido por una CA

2

Ok. Entonces, esto es lo que sé:

  1. El certificado SSL se usa para verificar el dominio para el protocolo HTTPS. Estos son emitidos por una CA raíz para garantizar que cualquier persona que use el sitio web y la CA también pueda confiar en él.

  2. No se confiará en un certificado SSL autofirmado porque no soy una CA raíz y el usuario no me conoce.

  3. El DSC (Certificado de firma digital) es emitido por una CA raíz para mí y tiene un par de claves privada / pública y puedo usar esto para firmar. Dado que también es emitido por la CA raíz, puedo firmar documentos y esos pueden ser verificados por terceros.

Aquí está mi pregunta:

¿Hay una manera de generar un certificado SSL usando mi DSC (Clase 2) y usarlo para un sitio web seguro de SSL / HTTPS? porque en teoría, esto creará toda una cadena de confianza que llegará a la CA raíz.

(He utilizado tanto SSL como DSC y solo quiero tener una claridad conceptual aquí. Puede que definitivamente me esté faltando algo aquí)

    
pregunta 23.10.2015 - 18:44
fuente

1 respuesta

3

Los certificados tienen profundidades, que aumentan a medida que avanza por una cadena de confianza, por lo que la profundidad de certificado 0 emite la profundidad de certificado 1, que emite la profundidad de certificado 2, etc ...

Para verificar satisfactoriamente una cadena de certificados completa, un cliente que se conecte a su sitio web con SSL tendrá que poder encontrar los intermediarios y verificarlos hasta que alcance un certificado de confianza, que en cualquier circunstancia normal es un certificado de CA instalado. con su sistema operativo.

Un cliente arbitrario no encontrará su certificado de intermediario en este caso, ya que estará equipado con todos los certificados habituales instalados con el sistema operativo, pero, por supuesto, no tendrá su intermediario ...

Una computadora de escritorio o servidor, construido como parte de algún tipo de creación corporativa especial para la compañía, puede ser manipulado, por supuesto, agregando certificados, y algunas compañías hacen esto, agregando su propia CA raíz con todas las demás por defecto.

Sin embargo, su servidor web seguro SSL puede proporcionar certificados intermedios (junto con los suyos propios) al cliente cuando se conecta para que pueda completar el proceso de verificación de confianza encadenada, pero ...

El siguiente problema es el certificado intermedio, el que le emitió su CA, puede no ser válido como una CA, y si es así, no se aceptará como un certificado intermedio.

Usando openssl puedes verificar esto ejecutando 'openssl x509':

openssl x509 -text -in CERT_FILENAME

Al probar esto en un certificado de CA, mirando a través de la salida, puede ver:

                ef:47:91:0a:72:ba:9e:85:3c:7e:39:6b:62:ed:d0:
                13:53:cf:52:52:e2:a8:1a:a8:27:5c:7e:08:a2:ad:
                17:1d
            Exponent: 65537 (0x10001)
    X509v3 extensions:
        X509v3 Subject Key Identifier: 
            5C:FC:C1:89:C0:DC:DD:C7:01:0D:EA:37:73:A8:7B:F4:55:85:A5:E4
        X509v3 Authority Key Identifier: 
            keyid:5C:FC:C1:89:C0:DC:DD:C7:01:0D:EA:37:73:A8:7B:F4:55:85:A5:E4

        X509v3 Basic Constraints: 
            CA:TRUE
Signature Algorithm: sha1WithRSAEncryption
     17:e4:1d:18:d6:43:68:75:04:11:c0:6f:72:6b:ac:eb:03:18:
     1c:f3:e3:94:f8:77:b5:40:38:3b:20:cd:42:d7:de:db:7c:98:

El bit mágico que estás buscando es:

            CA:TRUE

Si CA es FALSE o las extensiones x509 no están allí, no funcionará como CA intermedia.

Finalmente, también si tiene openssl, puede hacer "openssl s_client -connect som.ssl.web.site:443 -CApath / path / to / your / CAcerts -verify 5", y espero que debería, cerca del final de una carga de salida, obtener:

Verify return code: 0 (ok)

Sin embargo, cuando tu intermedio no sea válido como CA, obtendrás:

Verify return code: 26 (unsupported certificate purpose)

Probé esto generando una CA, luego un certificado intermedio y un certificado "final" firmado por el intermediario, y aunque la cadena de confianza es verificable con éxito, se usa en un sitio web, no funciona. Si genero un intermedio V3 con extensiones x509, estableciendo las restricciones básicas de CA en VERDADERO, y luego genero un certificado 'final' firmado por eso, nuevamente la cadena de confianza está bien, pero esta vez el cliente web está contento.

    
respondido por el Michael 23.10.2015 - 19:35
fuente

Lea otras preguntas en las etiquetas