Firma de certificados de Openssl

1

Este tema se ha discutido varias veces aquí y en toda la web & Seguí la mayor parte, pero parece que mis fundamentos no son lo suficientemente fuertes como para ...

Este es un requisito rápido y los pasos que he seguido

  1. Cree un par de claves [pvt / pub], llamemos a este caso de uso como MYKEY

  2. Genere un certificado x509 desde MYKEY

  3. Antes de compartir este certificado x509, establezca una cadena de custodia pero no hay una CA raíz disponible. Salir al mercado no es una opción.

  4. Este certificado ahora debe firmarse con otra clave privada, digamos, MYMASTERKEY y dado que la parte de publicación de MYMASTERKEY se compartirá con el destinatario, establece una cadena de custodia.

  5. Comparte el certificado firmado con el destinatario.

¿Qué he hecho?

  1. Clave RSA2048 generada. Podría extraer fácilmente la clave de publicación y crear un csr [llamado MYKEY.csr] desde la clave pvt [MYKEY].

  2. Podría generar un certificado x509 directamente desde la clave pvt, pero no creo que ese sea el requisito aquí.

  3. Creó otra clave pvt llamada MYMASTERKEY. Podría extraer su clave de pub, así como su certificado autofirmado. Voy a tratar a MYMASTERKEY como mi CA raíz aquí.

  4. csr generado para MYKEY [ openssl req -new -key MYKEY.pem -out MYKEYCSRREQ.pem ]. Usé esta sintaxis para "supuestamente" firmar este CSR usando MYMASTERKEY [ openssl x509 -req -days 730 -in MYKEYCSRREQ.pem -signkey MYMASTERKEY.pem -out MYKEYX509.crt ]

¿Dónde estoy atrapado?

No estoy seguro de si MYKEYX509.crt es lo que debo compartir con mi destinatario. No estoy seguro de la sintaxis que estoy usando aunque parece correcta. También estoy perdido para comprobar si puedo verificar MYKEYX509.crt usando la clave de publicación de MYMASTERKEY. ¿Cuál sería la sintaxis aquí como CA raíz es la mía?

También, cuando abro MYKEYX509.crt usando openssl x509 -in MYKEYX509.crt -noout -text , los detalles del emisor no son de la CA raíz [en mi caso, MYMASTERKEY]. Esto me confunde. Por un lado, parece que estoy haciendo lo correcto, pero no puedo verificarlo y no me siento seguro al respecto.

    
pregunta abhi 06.05.2015 - 01:13
fuente

1 respuesta

1

¿Ha creado un certificado de canto de CA para su CA? Ese es el paso en el que especifica los detalles de su CA raíz, que aparecerá en todos los certificados que esta CA crea. Esta respuesta es básicamente un resumen de estas instrucciones un tanto concisas para configurar su CA que encontré en google.

Parece que antes de que su CA pueda producir certificados firmados, necesita crear una clave de firma de CA (su MYMASTERKEY) y un certificado de CA autofirmado basado en MYMASTERKEY (creo que esto es lo que te estás perdiendo):

El siguiente comando le hará todo tipo de preguntas sobre su CA, la información que aparecerá en los certificados que firme, y luego generará el Certificado de firma CA autofirmado CAcert.crt :

openssl req -new -key MYMASTERKEY.pem -x509 -days 1095 -out CAcert.crt

Una vez que haya "configurado" su CA al crear un certificado de firma de CA, entonces puede tomar el archivo de Solicitud de Canto del Certificado de su cliente (* .csr) y crear un certificado a partir de él:

openssl x509 -req -days 365 -in MYKEYREQ.csr -CA CAcert.crt -CAkey MYMASTERKEY.pem -CAcreateserial -out clientCert.crt

El clientCert.crt resultante es lo que devuelve al cliente para que lo instale en su servidor web, y lo utiliza para firmar el correo electrónico, wtv.

Solo para que los futuros lectores estén completos, estos son los pasos que un cliente debería seguir para enviar una solicitud de certificado a la AC:

1- Generar una clave

openssl genrsa -des3 -out <new.key> 2048

2- Generar una solicitud de firma de certificado

openssl req -new -key <new.key> -out <new.csr>

El archivo <new.csr> es lo que envía a la CA para convertirlo en un certificado. Tenga en cuenta que el comando anterior le hará todo tipo de preguntas sobre la organización o el dominio para el que solicita el certificado. Si planea enviar esto a una CA pública, querrá pensar detenidamente qué incluir allí.

    
respondido por el Mike Ounsworth 06.05.2015 - 02:58
fuente

Lea otras preguntas en las etiquetas