¿Puedo eliminar archivos .csr una vez que la clave haya sido firmada por CA?

6

Estoy creando mi propio servidor openvpn .

La entidad emisora de certificados se encuentra en un host separado.

Hay dos tipos de clientes: que solo envían un .csr y a los que envío .crt como respuesta y el otro que yo mismo construyo.

En el segundo caso, creo el .key y .csr usando:

openssl req -days 3652 -nodes -new -keyout NewClient007.key -out NewClient007.csr

que el certificado firmado por:

openssl ca -days 3652 -out NewClient007.crt -in NewClient007.csr

Entonces, a partir de ahí, instalaré tanto .key como .crt en el nuevo cliente y eliminaré .key de CA .

Si entiendo correctamente, el .crt puede ser útil si quiero revocar la clave, en el futuro (pero se copia en Id.pem , donde Id es el número de índice).

Estado actual, donde se encuentran los archivos ssl:

server:
   ca.crt           CA's public certificate
   server.crt       server public certificate
   server.key       server private key
   crl.pem          CA signed certificates revocation list
   dh1024.pem       Diffie-Hellman parameters file

certificate authority:
   ca.key           CA's private key
   ca.crt           CA's public certificate
   index.txt        Index of signed keys
   serial           number of next entry in index.txt
   index.txt.attr   attributes for index file
   ClientXXXX.crt   All clients certificates
   ClientXXXX.csr   All clients signing requests
   YY.pem           Copy of clients certificates according to index nr.

clients:
   ca.crt           CA's public certificate
   ClientXXXX.crt   The client certificate
   ClientXXXX.key   The client key

Cuando compilo la clave del cliente, se destruyen inmediatamente y se eliminan una vez que están instaladas en el cliente.

Así que creo (pero no estoy seguro) que podría eliminar todos los ClientXXXX.csr y ClientXXXX.crt de CA ... ... Así que ahí está mi pregunta:

¿podría necesitar volver a acceder al archivo .csr o puedo eliminarlos definitivamente?

    
pregunta F. Hauri 19.03.2013 - 17:01
fuente

3 respuestas

11

La solicitud de firma de certificado (CSR) no sirve de nada una vez que haya obtenido su certificado. Es simplemente uno de los vehículos que se pueden usar para otorgar a la CA su clave pública como parte del proceso de solicitud, para que puedan emitir un certificado.

Ahora podrás obtener la clave pública nuevamente desde el propio certificado.

De hecho, en este formato en particular, podrá obtener la clave pública del archivo .key :

openssl rsa -in NewClient007.key -pubout

De hecho, también podrás volver a generar la CSR usando esto:

openssl req -new -key NewClient007.key -out NewClient007.csr

(Tenga en cuenta que no necesita la opción -days 3652 al generar el CSR, ya que un CSR no tiene fechas de antes / no después, a diferencia de los certificados X.509. Esto solo es útil si desea para generar un certificado durante este paso.)

Sin embargo, sugeriría usar -newkey rsa:2048 o -newkey rsa:4096 en lugar de confiar en el tamaño de clave predeterminado, que a menudo es de 1024 bits.

    
respondido por el Bruno 19.03.2013 - 17:12
fuente
5

Sí, una vez que se haya firmado el certificado, ya no necesitará la solicitud de firma.

    
respondido por el David George 19.03.2013 - 17:07
fuente
3

Normalmente, haces cosas en ese orden:

  1. En su servidor openvpn, crea el par de claves y la solicitud de certificado, con openssl req .
  2. Usted transporta la solicitud de certificado (el archivo ".csr") a la CA.
  3. La CA emite el certificado (en su caso, con openssl ca ), produciendo el archivo ".crt".
  4. Usted transporta el certificado al servidor openvpn.

La solicitud de certificado solo contiene la clave pública , no la privada. Puede viajar sin ninguna protección contra intrusos, porque no contiene nada confidencial. Aún tiene que asegurarse de que lo que obtiene la CA sea la solicitud enviada por el cliente, en caso de que la transmisión pueda alterarse.

Una vez que se ha emitido el certificado, la solicitud de certificado se puede eliminar porque ya no tiene uso. Pero puede guardarlo como una guía para solicitudes posteriores (por ejemplo, la que hará dentro de diez años); Como no hay nada confidencial en esa solicitud, no hay necesidad de proteger su archivo. Del mismo modo, si bien la CA no necesita conservar una copia del certificado en sí, se considera una buena práctica hacerlo de todos modos. La mayoría del software de CA lo hace automáticamente (utilizando la herramienta de línea de comandos OpenSSL, está eligiendo el "camino difícil").

Es mejor si la clave privada se genera en el propio servidor openvpn y nunca deja ese servidor, como se explicó anteriormente. Generar la clave en la máquina de CA y luego transportarla al servidor openvpn plantea algunos problemas: ¿cómo asegurarse de que no se espíe la clave durante esa transferencia? ¿Cómo se asegura de que ninguna copia de esa clave permanezca en el disco duro de la CA?

    
respondido por el Thomas Pornin 19.03.2013 - 17:32
fuente

Lea otras preguntas en las etiquetas