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:13] – [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 ==== |
+ | 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. | ||
+ | |||
+ | * La commande suivante permet de générer une clef secrète pour le serveur (2048 bits) : | ||
+ | |||
+ | openssl genrsa -out server.key 2048 | ||
+ | |||
+ | * La commande suivante permet de générer la requête de signature à envoyer à l' | ||
+ | |||
+ | openssl req -config openssl.cnf -nodes -new -key server.key -out server.csr | ||
+ | |||
+ | Ici le fichier '' | ||
+ | * Dans la section '' | ||
+ | |||
+ | [ req ] | ||
+ | ... | ||
+ | req_extensions = v3_req | ||
+ | |||
+ | * Il faut alors une section '' | ||
+ | |||
+ | [ v3_req ] | ||
+ | basicConstraints | ||
+ | keyUsage | ||
+ | subjectAltName = @alt_names | ||
+ | |||
+ | * Enfin, il faut une section '' | ||
+ | |||
+ | [ alt_names ] | ||
+ | DNS.1 = premiernom.univ-lyon1.fr | ||
+ | DNS.2 = deuxiemenom.secu.univ-lyon1.fr | ||
+ | DNS.3 = troisiemenom.secu.univ-lyon1.fr | ||
+ | IP.1 = 172.18.0.2 | ||
+ | IP.2 = ... | ||
+ | |||
+ | Bien surt, les champs '' | ||
+ | |||
+ | Attention, il est préférable que le le '' | ||
+ | |||
+ | 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é : | Création d'un certificat autosigné : | ||
openssl req -config ./ | openssl req -config ./ | ||
Ligne 11: | Ligne 51: | ||
Le fichier '' | Le fichier '' | ||
- | ===== Requête de signature | + | === Signature d'une requête |
- | 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 | + | Pour signer |
+ | openssl ca -in server.csr -config ./ | ||
- | openssl genrsa -out server.key 2048 | + | Cela produit un fichier '' |
+ | [ CA_default ] | ||
+ | ... | ||
+ | copy_extensions = copy | ||
- | - Pour générer la requète de signature à envoyer à l' | ||
- | openssl req -config openssl.cnf -nodes -new -key server.key -out server.csr | + | ==== 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 : | ||
- | Ici le fichier '' | ||
- | - Dans la section '' | ||
- | [ req ] | + | |
- | | + | |
- | | + | |
+ | 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 : |
- | ===== Lecture du contenu d'un certificat ===== | + | openssl req -in NOMFICHIER.csr -text |
- | |