Crear certificado sin clave privada con OpenSSL

4

Sé que OpenSSL requiere que la CSR esté firmada por un motivo: para garantizar la validez de la CSR, el hecho de que fue solicitado por el propietario de la clave privada real de la clave pública adjunta. Está absolutamente bien, pero en teoría una AC puede asegurar la validez de otras maneras, especialmente cuando la CSR nunca está en tránsito. Este es el caso de los certificados autofirmados, por ejemplo, Con certificados de la empresa emitidos y utilizados localmente. En mi caso, me gustaría crear certificados sin las claves privadas porque se generan en tarjetas inteligentes y no se pueden exportar nunca. Y no, las tarjetas no generan CSR durante la generación de claves.

No he encontrado ninguna opción en OpenSSL para crear un certificado a partir de la única clave pública. A pesar de que en teoría es muy posible.

¿Hay una opción en OpenSSL para hacerlo? ¿Algún otro medio? Necesito crear certificados X509.

Gracias

    
pregunta djozsef 22.02.2015 - 17:02
fuente

2 respuestas

5

Como sugiere AJ Henderson , la solución perfecta sería que la tarjeta OpenPGP firme el CSR. Resultó que es posible con la herramienta gpgsm CLI. Damien Goutte-Gattat de la lista de correo de usuarios de GnuPG respondió la pregunta:

  
    

¿Hay alguna forma de crear un CSR X509 firmado con la clave privada almacenada en     la tarjeta?

  
     

Sí, puedes usar la herramienta gpgsm (1) para eso.

     

Asegúrese de que su tarjeta esté en el lector de tarjetas, luego:

 $ gpgsm --armor --output mycsr.pem --gen-key
     

Se le pedirá que seleccione qué tipo de clave desea, elija   " Existing key from card " (asegúrese de que su tarjeta esté en el lector).   Luego seleccione cuál de las claves de la tarjeta que desea usar (la clave de firma,   la clave de cifrado, o la clave de autenticación) y el uso previsto   del futuro certificado.

     

Al final del procedimiento, se le pedirá su PIN en orden   para firmar el CSR.

     

La documentación de Scute tiene un ejemplo completo (utiliza   gpgsm-gencert.sh, un script auxiliar en desuso, en lugar del anterior   comando, pero el procedimiento es casi el mismo).

Por lo tanto, no hay necesidad de eludir la CSR, puede hacer un certificado X509 válido con GnuPG.

    
respondido por el djozsef 23.02.2015 - 18:00
fuente
2

Sí, puedes evitar este hecho.

  1. crea un csr falso con CUALQUIER clave privada
  2. la CA puede usar el indicador force_pubkey (como se menciona aquí: enlace ) para firmarlo incluso si la clave pública proporcionada no es la que pertenece a la clave privada que usó al generar el csr.
  3. tienes tu X509 con tu clave pública deseada
respondido por el Valentin Bossi 04.05.2018 - 12:57
fuente

Lea otras preguntas en las etiquetas