openssl para CA interna: ¿cómo “verifico que la solicitud coincida con la firma”?

1

Estoy siguiendo esta guía para crear una Autoridad de Certificación para uso interno.

Estoy en la etapa "Crear el certificado intermedio" donde la CA intermedia debe estar firmada por la CA raíz.

openssl ca -config openssl.cnf -extensions v3_intermediate_ca \
  -days 3650 -notext -md sha256 \
  -in intermediate/csr/intermediate.csr.pem \
  -out intermediate/certs/intermediate.cert.pem

Aquí, openssl.cnf apunta al certificado que generé para la CA raíz.

[ CA_default ]
private_key = $dir/private/ca-root.private.encrypted.key

OpenSSL luego me lanza esto interactivamente

Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 4096 (0x1000)
        Validity
            Not Before: Oct 21 17:12:48 2016 GMT
            Not After : Oct 31 17:12:48 2018 GMT
        Subject:
            [...snip...]
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                EC:D9:FD:DC:AA:B9:D3:93:83:14:D2:4D:84:C6:75:A2:20:90:A1:E6
            X509v3 Authority Key Identifier: 
                keyid:EB:81:E3:6B:5D:32:DD:06:0A:D8:4F:B6:D0:5C:A2:BD:C9:CF:8E:79

            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
Certificate is to be certified until Oct 31 17:12:48 2018 GMT (740 days)
Sign the certificate? [y/n]:

¿Qué estoy buscando aquí? Saqué la sección Subject: . Además de tener en cuenta esos detalles (obviamente coinciden con lo que creé un minuto por semana ), ¿debo hacer algo más para comprobar que el certificado es válido?

Y si el CSR proviene de un tercero, ¿qué buscaría verificar?

    
pregunta spraff 21.10.2016 - 19:25
fuente

1 respuesta

1

Check ... signature / Signature ok le dice que el programa openssl verificó la firma de CSR y se aseguró de que se verificara, antes de hacer cualquier otra cosa. No es necesario que compruebes la firma , y no sería práctico hacerlo. ca entonces muestra solo el nombre del sujeto de manera predeterminada, o la mayoría de los detalles si name_opt y / o cert_opt están configurados como aparentemente tiene, y a menos que use -batch usted está preguntó si firmar (emitir) el certificado propuesto o no.

Para un CSR que generaste, probablemente confías en ti mismo (a menos que seas Michael Garibaldi ), así que aprueba. Si la CSR proviene de un tercero, la mejor práctica es comprobarlo antes ejecutando ca , porque lo más importante que debe verificar es si el solicitante es legítimo y está autorizado, lo que no puede hacer. solo de los contenidos de CSR (o cert), así que de nuevo simplemente apruebe. Pero si aún no lo has comprobado, esta es tu última oportunidad de:

  • verifique el asunto y, opcionalmente, SAN identifica adecuadamente a la parte; o para los casos X.500 jerárquicos simples (que no son tan comunes como esperaba el CCITT) puede configurar policy para verificar automáticamente el DN del sujeto con el DN del emisor

  • si copió extensiones de la CSR, que no es la predeterminada, verifique que describan las capacidades que desea "certificar" para esta parte; si usó extensiones de su (s) archivo (s) de configuración, puede hacer una doble comprobación de que no hay error (incluso si usted verificó el CSR)

  • quizás compruebe que el algoritmo y el tamaño de la clave de asunto cumplen con los requisitos de seguridad e interoperabilidad para su entorno y / o esta parte

respondido por el dave_thompson_085 22.10.2016 - 04:10
fuente