Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
divers:openssl [2017/01/10 00:28] – [Requête de signature] fabien.rico | divers:openssl [2018/01/08 00:54] (Version actuelle) – [Requête de signature] fabien.rico | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Openssl est un utilitaire en ligne de commande efficace pour gérer ses propres certificats. Il existe d' | Openssl est un utilitaire en ligne de commande efficace pour gérer ses propres certificats. Il existe d' | ||
- | ===== CA ===== | + | ==== Requête de signature ==== |
- | Création d'un certificat autosigné : | + | |
- | openssl req -config ./ | + | |
- | + | ||
- | Cela crée une clef '' | + | |
- | + | ||
- | Le fichier '' | + | |
- | + | ||
- | ===== Requête de signature | + | |
Pour authentifier un serveur, il faut un certificat valide c'est à dire un document contenant la description du serveur (notamment son identifiant et ses noms alternatifs) ainsi que sa clef publique et une signature d'une autorité de certification. | Pour authentifier un serveur, il faut un certificat valide c'est à dire un document contenant la description du serveur (notamment son identifiant et ses noms alternatifs) ainsi que sa clef publique et une signature d'une autorité de certification. | ||
- | * Pour générer une clef secrète pour le serveur (2048 bits) : | + | * La commande suivante permet de générer une clef secrète pour le serveur (2048 bits) : |
openssl genrsa -out server.key 2048 | openssl genrsa -out server.key 2048 | ||
- | * Pour générer la requète | + | * La commande suivante permet de générer la requête |
openssl req -config openssl.cnf -nodes -new -key server.key -out server.csr | openssl req -config openssl.cnf -nodes -new -key server.key -out server.csr | ||
- | Ici le fichier '' | + | Ici le fichier '' |
* Dans la section '' | * Dans la section '' | ||
Ligne 36: | Ligne 28: | ||
subjectAltName = @alt_names | subjectAltName = @alt_names | ||
- | * Enfin, il faut une section '' | + | * Enfin, il faut une section '' |
[ alt_names ] | [ alt_names ] | ||
Ligne 45: | Ligne 37: | ||
IP.2 = ... | IP.2 = ... | ||
- | Les champs '' | + | Bien surt, les champs '' |
Attention, il est préférable que le le '' | Attention, il est préférable que le le '' | ||
- | ===== Lecture du contenu d'un certificat ===== | + | Une fois la requête générée, vous pouvez la vérifier (voir section lecture) et la transmettre à une autorité de certificat qui va la signer. |
+ | |||
+ | ==== CA ==== | ||
+ | Création d'un certificat autosigné : | ||
+ | openssl req -config ./ | ||
+ | |||
+ | Cela crée une clef '' | ||
+ | |||
+ | Le fichier '' | ||
+ | |||
+ | === Signature d'une requête === | ||
+ | |||
+ | Pour signer une requête il faut taper : | ||
+ | openssl ca -in server.csr -config ./ | ||
+ | |||
+ | Cela produit un fichier '' | ||
+ | [ CA_default ] | ||
+ | ... | ||
+ | copy_extensions = copy | ||
+ | |||
+ | |||
+ | ==== Lecture du contenu d'un certificat ==== | ||
+ | Un certificat, une clef ou un requête sont simplement formé par un paragraphe en base64 entre 2 lignes qui décrivent le contenu. Par exemple : | ||
+ | |||
+ | |||
+ | |||
+ | -----BEGIN CERTIFICATE REQUEST----- | ||
+ | MIIDxzCCAq8CAQAwgasxCzAJBgNVBAYTAkZSMR0wGwYDVQQIDBRSaG9uZS1BbHBl | ||
+ | cy1BdXZlcmduZTENMAsGA1UEBwwETHlvbjEMMAoGA1UECgwDVFBSMQ0wCwYDVQQL | ||
+ | CC6RaOwOoyoceMR+uMiWPORYmtqsnRfu24WDisNu2Sw8rCipOOCtm6FxylNZAxBt | ||
+ | 21vfhPpFdF1Z0oKyajGCOea8bp2spz3YfBudQ4iOP/ | ||
+ | d96YQwDgqg+UP6fKptzq9O3Huy8yI/ | ||
+ | pgYDVR0RBIGeMIGbgh9hdXRoLmdyb3VwZTEuc2VjdS51bml2LWx5b24xLmZygiFy | ||
+ | ZWxvYWQuZ3JvdXBlMS5zZWN1LnVuaXYtbHlvbjEuZnKCIm1hbmFnZXIuZ3JvdXBl | ||
+ | 0XMY5DI42noZfH/ | ||
+ | inFlDmugu7wBPTJzyO4C87gZbhCC68jVT9dI3teuU51RAZPv+tGq1FJpAgMBAAGg | ||
+ | gdUwgdIGCSqGSIb3DQEJDjGBxDCBwTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DCB | ||
+ | MS5zZWN1LnVuaXYtbHlvbjEuZnKCIHRlc3QxLmdyb3VwZTEuc2VjdS51bml2LWx5 | ||
+ | b24xLmZygglsb2NhbGhvc3SHBKwSAAIwDQYJKoZIhvcNAQELBQADggEBABQIIt9E | ||
+ | wahgSY7vB/ | ||
+ | 9wgJj3oIkfKrvKo/ | ||
+ | zLz2kkvykpjYySp0ZAb/ | ||
+ | siTqRotwtNTpeN23j146deO5FrLr/ | ||
+ | sPXFhgAO4MkCVQ1WTIx/ | ||
+ | CZssojdoGPcCa+s= | ||
+ | -----END CERTIFICATE REQUEST----- | ||
+ | Il est toujours utile de vérifier le contenu d'un certificat : | ||
+ | |||
+ | * pour un certificat : | ||
+ | |||
+ | openssl x509 -in NOMFICHIER.crt -text | ||
+ | |||
+ | * pour une requête : | ||
+ | |||
+ | openssl req -in NOMFICHIER.csr -text | ||
- | |