web-dev-qa-db-fra.com

Pourrais-je supprimer des fichiers .CSR une fois la clé signée par ca

Je crée mon propre serveur openvpn.

Le autorité de certification est situé sur un hôte séparé.

Il y a deux types de clients: ce qui vient d'envoyer un .csr et à quoi j'envoie le .crt comme une réponse et l'autre que je construis moi-même.

Dans le second cas, je crée le .key et .csr en utilisant:

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

que le certificat signé par:

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

Donc, à partir de là, je vais installer les deux .key et .crt au nouveau client et supprimer .key à partir du CA .

Si je comprends bien, le .crt peut être utile si je veux révoquer la clé, à l'avenir (mais est copiée à Id.pem, où id est le numéro d'index).

État actuel, où se trouvent les fichiers 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

Lorsque je construis la clé du client moi-même, ils sont immédiatement shred et supprimés une fois installé dans le client.

Je pense donc (mais je ne suis pas sûr), je pouvais distinguer discrètement tout ClientXXXX.csr et ClientXXXX.crt à partir de CA ... ... donc il y a ma question:

puis-je jamais avoir besoin d'accéder à .csr Fichier à nouveau ou pourrais-je les supprimer définitivement?

6
F. Hauri

La demande de signature du certificat (CSR) n'est pas utilisée une fois que vous avez obtenu votre certificat. C'est simplement l'un des véhicules pouvant être utilisés pour donner à la CA votre clé publique dans le cadre du processus de candidature afin de pouvoir émettre un certificat.

Vous pourrez maintenant obtenir la clé publique à nouveau du certificat lui-même de toute façon.

En fait, dans ce format particulier, vous pourrez obtenir la clé publique de la .key déposer:

openssl rsa -in NewClient007.key -pubout

En fait, vous serez également en mesure de ré-générer le CSR en utilisant ceci:

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

(Notez que vous n'avez pas besoin de la -days 3652 Option lors de la génération de la RSE, car une RSE n'a pas de dates avant/non-après, contrairement aux certificats X.509. Ceci n'est utile que si vous souhaitez générer un certificat pendant cette étape.)

Je suggérerais cependant d'utiliser -newkey rsa:2048 ou -newkey rsa:4096 Au lieu de s'appuyer sur la taille de la clé par défaut, ce qui est souvent 1024 bits.

11
Bruno

Oui Une fois que le certificat est signé, vous n'avez plus besoin de la demande de signature.

5
David George

Normalement, vous faites des choses dans cet ordre:

  1. Sur votre serveur OpenVPN, vous créez la liste de clés et la demande de certificat, avec openssl req.
  2. Vous transportez la demande de certificat (le fichier ".csr") à la ca.
  3. L'AC émet le certificat (dans votre cas, avec openssl ca), produisant le fichier ".crt".
  4. Vous transportez le certificat sur le serveur OpenVPN.

La demande de certificat ne contient que la touche Public, pas le privé. Il peut voyager sans aucune protection contre les orevesdroppers, car il ne contient rien de confidentiel. Vous devez toujours vous assurer que la CA obtient en effet la demande envoyée par le client, au cas où la transmission pouvait être modifiée.

Une fois le certificat émis, la demande de certificat peut être supprimée car elle n'a plus d'utilisation. Mais vous pouvez le garder comme un guide pour les demandes suivantes (par exemple, celle que vous effectuerez dix ans à partir de maintenant); Comme il n'y a rien de confidentiel dans cette demande, il n'est pas nécessaire de protéger son archivage. De même, alors que l'autorité de certification n'a pas besoin de garder une copie du certificat lui-même, elle est considérée comme une bonne pratique de le faire quand même. La plupart des logiciels de CA font cela automatiquement (à l'aide de l'outil OpenSSL Command-Line, vous choisissez le "chemin dur").

Il est préférable que la clé privée soit générée sur le serveur OpenVPN lui-même et ne laisse jamais ce serveur, comme expliqué ci-dessus. Génération de la clé de la machine CA puis de le transporter sur le serveur OpenVPN soulève quelques problèmes: comment vous assurez-vous que la clé n'est pas espionnée lors de ce transfert? Comment vous assurez-vous qu'aucune copie de cette clé persiste sur le disque dur CA?

3
Thomas Pornin