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?
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.
Oui Une fois que le certificat est signé, vous n'avez plus besoin de la demande de signature.
Normalement, vous faites des choses dans cet ordre:
openssl req
.openssl ca
), produisant le fichier ".crt".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?