Tags pour la question fréquent:
Apache CSR Lighttpd NGinx OpenSSL

Cet article a-t-il répondu à votre question?

Score de 5, basé sur 5 votes

OpenSSL - Générer une demande de certificat SSL (CSR)

Dernière mise à jour: 04/12/2016

OpenSSL est une série d'outils fournie avec les distributions Linux, Unix, FreeBSD et OpenBSD distributies. OpenSSL contient la commande du même nom openssl qui vous permet d'effectuer toutes les opérations nécessaires sur les certificats et les clés de chiffrage.

Avant de créer une demande de certificat, il vous faut créer une clé privée (private key) sur le serveur. C'est cette clé qui servira à signer la demande de certificat et à identifier le serveur. Si vous ne disposez pas encore de clé, ce qui est le cas si vous souhaitez commander un certificat pour la première fois, vous pouvez générer la clé et la demande de certificat en une seule fois.

Connecter vous vers votre serveur avec SSH (Secure Shell). Si vous travaillez sur Windows, il vous faudra installer un logiciel client SSH pour cela. Kinamo vous conseille de télécharger le logiciel populaire et gratuit PuTTY. Sous Mac OS X ou sous Linux, vous n'avez qu'à ouvrir une fenêtre de terminal et de saisir la commande suivante, en remplaçant évidemment le nom du serveur par le nom ou l'adresse IP du vôtre..

ssh -l root server.com

Après avoir entré votre mot de passe, vous serez connecté au serveur. Les certificats SSL, les clés et les demandes de certificats se gardent en général dans un seul dossier, mais celui-ci peut différer selon votre distribution. Nous emploierons /etc/ssl/certs à titre d'illustration dans cet article.

Déplacez-vous vers le dossier où vos certificats sont stockés:

[root@server ~]# cd /etc/ssl/certs
[root@server certs]#

Si vous ne disposez pas encore de clé privée, saisissez la commande suivante:

[root@server certs]# openssl req -sha256 -nodes -newkey rsa:2048 -keyout www.server.com.key -out www.server.com.csr

Remplacez dans la règle ci-dessus www.server.com par votre nom de domain, à moins que vous ne soyez l'heureux propriétaire de server.com.

Si vous souhaitez générer une clé privée à l'aide du chiffrage récent ECC (Ellyptical Curve Cryptography) au lieu de RSA, exécutez les commandes suivantes pour générer d'abord votre clé privée ECC, et ensuite votre CSR:

[root@server certs]# openssl ecparam -out www.server.com.key -name prime256v1 -genkey
[root@server certs]# openssl req -new -key www.server.com.key -out www.server.com.csr

Si vous aviez déjà précédemment créé une clé privée, ce qui sera le cas si vous souhaitez renouveler ou réémettre votre certificat, optez pour la commande suivante:

[root@server certs]# openssl req -new -sha256 -key www.server.com.key -out www.server.com.csr

Ou encore plus aisé, si vous souhaitez renouveler votre certificat à base de votre certificat actuel sans apporter de changements aux informations existantes:

[root@server certs]# openssl x509 -x509toreq -in www.server.com.crt -out www.server.com.csr -signkey www.server.com.key

Vous vous verrez ensuite présenté le dialogue suivant, qui vous permet d'entrer les données nécessaires à la demande de certificat. Veillez soigneusement à ce que les informations que vous saisissez correspondent à celles entrées dans la base de données WHOIS pour votre nom de domaine, et à celles que vous avec communiqué à la Chambre de Commerce, au Moniteur Belge ou à tout autre organisme officiel lors de la création de votre société.

Generating a 2048 bit RSA private key
.....................+++
...................................+++
writing new private key to 'www.server.com.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [XX]:BE
State or Province Name (full name) []:Antwerpen
Locality Name (eg, city) [Default City]:Antwerpen
Organization Name (eg, company) [Default Company Ltd]:Kinamo NV
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.server.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Remplacez bien entendu les données de la société Kinamo ci-dessus par les vôtres, et sous Common Name, saisissez le nom de domaine pour lequel vous faites la demande de certificat. Dans le cas d'un wildcard, commencez par une astérisque, comme dans *.server.com.

Si vous souhaitez contrôler les données que vous avez entrées dans votre CSR, cela ce fait avec la commande suivante:

[root@server certs]# openssl req -in www.server.com.csr -noout -text
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=BE, ST=Antwerpen, L=Antwerpen, O=Kinamo NV, CN=www.server.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:d0:e1:e4:87:0a:82:6c:7d:4b:75:40:cf:91:b1:
                    21:81:9c:90:6e:b6:63:f4:4e:d6:40:7d:b1:3b:1b:
                    30:78:04:bf:3c:fc:32:c1:24:49:8b:7b:d3:d7:19:
                    2e:4b:9a:d1:54:c2:44:2a:7c:08:ba:39:bf:28:62:
                    e8:f7:bf:70:1c:c0:6c:0b:88:b9:24:af:8d:11:0a:
                    b5:7b:1f:b5:d5:ed:4a:56:8f:61:d3:d5:26:97:fa:
                    ab:5f:68:6b:1d:74:4e:af:80:f1:d9:a0:9d:e1:e3:
                    9d:4e:86:8d:51:ba:c3:f4:f3:49:df:1a:06:f1:b8:
                    a5:29:91:9d:7f:9c:3b:43:43:c5:bf:b0:5a:eb:35:
                    aa:3f:9a:45:a5:ad:f4:65:de:5c:d2:c0:cc:b6:e0:
                    b8:d9:ed:50:99:1f:ed:ca:bb:ef:b8:1c:c8:c0:84:
                    16:1f:35:11:fb:34:7b:99:02:9d:8e:7c:04:3d:fc:
                    0b:60:28:f8:a3:4d:ba:dc:c8:d3:a7:6a:6c:79:cf:
                    1a:6d:95:43:9d:c3:65:da:73:fc:53:22:1d:56:50:
                    11:02:79:5a:f6:58:4f:c0:e7:b0:50:51:72:37:50:
                    c8:d6:20:e0:cc:65:df:f0:fe:ea:80:15:cb:88:19:
                    9b:14:4f:58:5b:3c:fe:2c:48:09:dc:dc:53:62:a1:
                    ab:b9
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         09:75:3e:03:e6:14:39:2f:45:d7:51:26:ce:67:93:48:d6:da:
         5a:82:35:fe:0a:dc:d3:b7:31:a4:8b:8e:c2:a8:c8:ca:cb:0d:
         97:60:bc:bb:eb:2e:3c:d0:5d:b9:5e:c7:3e:31:13:28:4d:09:
         6a:71:d1:b4:9b:8e:bd:84:33:85:03:7d:1f:4d:44:b4:16:cf:
         39:6a:cc:d8:de:ae:ba:22:9e:9b:be:c6:bc:03:5b:77:d6:f3:
         2e:f2:4f:93:ad:af:96:14:c4:67:84:70:b9:ea:26:38:19:70:
         4d:12:3c:91:f7:5b:a7:05:e8:34:92:5d:5b:05:a3:d5:10:cd:
         38:4d:28:44:32:23:82:99:52:a5:37:93:ae:3b:49:dd:8f:44:
         74:1b:36:a6:2b:61:70:d3:9e:fc:2d:f9:9b:48:de:d2:ae:94:
         80:d3:be:e6:76:23:99:29:24:67:4d:b1:75:a9:0f:1f:6c:c8:
         15:5a:9d:b5:a4:b6:04:4f:45:10:96:42:e8:1f:00:b8:00:1b:
         07:8a:cd:4a:f9:9e:87:99:fc:9a:0a:ec:22:c5:51:3a:96:97:
         fd:89:a4:c2:a6:be:31:11:96:76:e8:5b:65:1d:b3:78:9d:aa:
         f6:4d:bb:04:ad:59:a8:c3:35:b2:50:0a:d9:17:58:db:ef:71:
         8e:1c:79:41

Afficher maintenant le contenu du fichier CSR à l'écran:

[root@server certs]# cat www.server.com.csr
-----BEGIN CERTIFICATE REQUEST-----
MIICozCCAYsCAQAwXjELMAkGA1UEBhMCQkUxEDAOBgNVBAgMB0FudHdlcnAxEDAO
BgNVBAcMB0FudHdlcnAxEjAQBgNVBAoMCUtpbmFtbyBOVjEXMBUGA1UEAwwOd3d3
LnNlcnZlci5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDhdEF7
Dj/6KHLqY/5+5tN+NHRG0Mo+sWCtlmJ707yzYnqQAc7+ilVfBNWdlX68I/gTsgdp
QlojCRiqtXLFFNB0pvWOYUsvfk/1bcDww7MgbrDFYP0jGEO2L9OF+0UhZ94kgyeF
jkxtJSLXcfKNjbjgx8h4motMkYiwB/Ovg+dmPBo4uyvKZFNEV23zMaYvPFKItryl
lWkoHt71UIfXGIuoRXo4wPzkz4fyBveu1xun7TshyTaZXf6H+F643P8i0KqNg7f+
ZTjO0dKek58XN5VvjWzfKyolraRFrxek3vLqNCmuBXptdhQOOCaWXZrXd0s6vz8N
N+xerzw2jCeXY/kDAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAK3KXIyW7Dt9R
63Bx6dVpdP7vMubPWR/uDRKQLAXoDca4ztRoADI1Y3VKBec6DsS6kkseK/pfdhLM
HxjE7rE/yGwYpfCV9KuGe7khEuaw/gS7EhHHLZZpyhuYLuTBoIKCJN6ucHPiyMHQ
eCJyUeuPuty3SsLM06PqHg6KBO2MAMiHZulIrheJjDWX017jP0mjkmyPNZ1sQ8Se
e3KcS0ghCpPKmwmtm7fjNEnB0LgcaEc2niDkL5IM2Ck0UYBD6JxdkNW5A+7cS9r9
ResC/vbhf8GGvOh+SWryO1ngoNAIxXv0WrEQJsfDjkuMAAbmWhJYjym9d6IzKHBF
ZZ8MjgW5EQ==
-----END CERTIFICATE REQUEST-----

Copiez le contenu du fichier en sa totalité, en incluant les lignes BEGIN CERTIFICATE REQUEST et END CERTIFICATE REQUEST et les tirets, et collez le dans le formulaire de demande de certificat de Kinamo.

Notez que Kinamo vous fournit un outil en ligne pour générer votre CSR aisément: le Générateur de CSR Kinamo. Cet outil vous génère un CSR et la clé privée correspondante. N'oubliez pas de sauvegarder cette dernière sur votre serveur: sans cela, le certificat qui vous sera délivré serait inutilisable.