3.4. Création d'une clé privée et d'une CSR pour un certificat client TLS à l'aide d'OpenSSL
Vous ne pouvez utiliser les canaux de communication cryptés TLS que si vous disposez d'un certificat TLS valide délivré par une autorité de certification (AC). Pour obtenir le certificat, vous devez d'abord créer une clé privée et une demande de signature de certificat (CSR) pour votre client.
Procédure
Générez une clé privée sur votre système client, par exemple :
$ openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out <client-private.key>
Facultatif : Utilisez un éditeur de texte de votre choix pour préparer un fichier de configuration qui simplifie la création de votre CSR, par exemple :
$ vim <example_client.cnf> [client-cert] keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = clientAuth subjectAltName = @alt_name [req] distinguished_name = dn prompt = no [dn] CN = <client.example.com> [clnt_alt_name] email= <client@example.com>
L'option
extendedKeyUsage = clientAuth
limite l'utilisation d'un certificat.Créez une RSC à l'aide de la clé privée que vous avez créée précédemment :
$ openssl req -key <client-private.key> -config <example_client.cnf> -new -out <client-cert.csr>
Si vous omettez l'option
-config
, l'utilitairereq
vous demande des informations supplémentaires, par exemple :You are about to be asked to enter information that will be incorporated into your certificate request. … Common Name (eg, your name or your server's hostname) []: <client.example.com> Email Address []: <client@example.com>
Prochaines étapes
- Soumettez la CSR à l'autorité de certification de votre choix pour signature. Sinon, pour un scénario d'utilisation interne au sein d'un réseau de confiance, utilisez votre autorité de certification privée pour la signature. Voir Section 3.5, « Utilisation d'une autorité de certification privée pour émettre des certificats pour les CSR avec OpenSSL » pour plus d'informations.
Vérification
Vérifiez que les parties du certificat lisibles par l'homme correspondent à vos exigences, par exemple :
$ openssl x509 -text -noout -in <client-cert.crt> Certificate: … X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Subject Alternative Name: email:client@example.com …
Ressources supplémentaires
-
openssl(1)
,x509(1)
,genpkey(1)
,req(1)
, etconfig(5)
pages de manuel