GNU/Linux >> Tutoriels Linux >  >> Linux

Comment générer une clé SSL, un CSR et un certificat auto-signé pour Apache

Si vous souhaitez convertir votre site Web de HTTP à HTTPS, vous devez obtenir un certificat SSL d'une organisation valide comme Verisign ou Thawte. Vous pouvez également générer un certificat SSL auto-signé à des fins de test.

Dans cet article, voyons comment générer un fichier de clé privée (server.key), un fichier de demande de signature de certificat (server.csr) et un fichier de certificat de serveur Web (server.crt) pouvant être utilisés sur un serveur Apache avec mod_ssl .

Convention de nommage des fichiers clés, CSR et CRT

J'aime généralement nommer les fichiers avec le nom de domaine de l'URL HTTPS qui utilisera ce certificat. Cela facilite l'identification et la maintenance.

  • Au lieu de server.key, j'utilise www.thegeekstuff.com.key
  • Au lieu de server.csr, j'utilise www.thegeekstuff.com.csr
  • Au lieu de server.crt, j'utilise www.thegeekstuff.com.crt

1. Générer une clé privée sur le serveur exécutant Apache + mod_ssl

Tout d'abord, générez une clé privée sur le serveur Linux qui exécute le serveur Web Apache à l'aide de la commande openssl comme indiqué ci-dessous.

# openssl genrsa -des3 -out www.thegeekstuff.com.key 1024
Generating RSA private key, 1024 bit long modulus
.......................................++++++
...................................................++++++
e is 73547 (0x01001)
Enter pass phrase for www.thegeekstuff.com.key:
Verifying - Enter pass phrase for www.thegeekstuff.com.key:

# ls -ltr www.thegeekstuff.*
-rw-r--r-- 1 root root   963 Jun 13 20:26 www.thegeekstuff.com.key

La clé privée générée ressemble à ceci.

# cat www.thegeekstuff.com.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,485B3C6371C9916E

ymehJu/RowzrclMcixAyxdbfzQphfUAk9oK9kK2
jadfoiyqthakLKNqw9z1MoaqkPyqeHevUm26no
AJKIETHKJADFS2BGb0n61/Ksk8isp7evLM4+QY
KAQETKjdiahteksMJOjXLq+vf5Ra299fZPON7yr
-----END RSA PRIVATE KEY-----

2. Générer une demande de signature de certificat (CSR)

En utilisant la clé générée ci-dessus, vous devez générer un fichier de demande de certificat (csr) en utilisant openssl comme indiqué ci-dessous.

# openssl req -new -key www.thegeekstuff.com.key -out www.thegeekstuff.com.csr
Enter pass phrase for www.thegeekstuff.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) [GB]:US
State or Province Name (full name) [Berkshire]:California
Locality Name (eg, city) [Newbury]:Los Angeles
Organization Name (eg, company) [My Company Ltd]:The Geek Stuff
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []: thegeekstuff
Email Address []:

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

# ls -ltr www.thegeekstuff.*
-rw-r--r-- 1 root root   963 Jun 13 20:26 www.thegeekstuff.com.key
-rw-r--r-- 1 root root   664 Jun 13 20:35 www.thegeekstuff.com.csr

3. Générer un certificat SSL auto-signé

À des fins de test, vous pouvez générer un certificat SSL auto-signé valable 1 an à l'aide de la commande openssl comme indiqué ci-dessous.

# openssl x509 -req -days 365 -in www.thegeekstuff.com.csr -signkey www.thegeekstuff.com.key -out www.thegeekstuff.com.crt
Signature ok
subject=/C=US/ST=California/L=Los Angeles/O=thegeekstuff/OU=IT/CN=www.thegeekstuff.com
Getting Private key
Enter pass phrase for www.thegeekstuff.com.key:

# ls -l www.thegeekstuff*
-rw-r--r-- 1 root root   963 Jun 13 20:26 www.thegeekstuff.com.key
-rw-r--r-- 1 root root   664 Jun 13 20:35 www.thegeekstuff.com.csr
-rw-r--r-- 1 root root   879 Jun 13 20:43 www.thegeekstuff.com.crt

# cat www.thegeekstuff.com.crt
-----BEGIN CERTIFICATE-----
haidfshoaihsdfAKDJFAISHTEIHkjasdjadf9w0BAQUFADCB
kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ
kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29
-----END CERTIFICATE-----


Vous pouvez utiliser cette méthode pour générer une clé SSL Apache, un fichier CSR et CRT dans la plupart des systèmes Linux, Unix, y compris Ubuntu, Debian, CentOS, Fedora et Red Hat.

4. Obtenez un certificat SSL d'essai valide (facultatif)

Au lieu de le signer vous-même, vous pouvez également générer un certificat SSL d'essai valide auprès de thawte. c'est-à-dire qu'avant de dépenser de l'argent pour acheter un certificat, vous pouvez également obtenir un certificat SSL d'essai valide de 21 jours entièrement fonctionnel auprès de Thawte. Une fois que ce certificat valide fonctionne, vous pouvez décider de l'acheter auprès de Thawte ou de toute autre organisation de signature SSL.

Cette étape est facultative et pas vraiment obligatoire. À des fins de test, vous pouvez toujours utiliser le certificat auto-signé généré à l'étape ci-dessus.

Accédez à la page de demande de certificat d'essai Thwate et procédez comme suit :

  • Sélectionnez "Certificat de serveur Web SSL (tous les serveurs)" sous "sélectionnez votre certificat d'essai".
  • Ne cochez pas la case PKCS #7 sous "configurer le certificat"
  • Copiez/Collez le fichier *.csr que vous avez généré ci-dessus dans la zone de texte sous "demande de signature de certificat (CSR)"
  • Cliquez sur suivant en bas, ce qui vous donnera un certificat d'essai gratuit de 21 jours.


Copiez/Collez le certificat d'essai dans le fichier www.thegeekstuff.com.crt comme indiqué ci-dessous.

# cat www.thegeekstuff.com.crt
-----BEGIN CERTIFICATE-----
haidfshoaihsdfAKDJFAISHTEIHkjasdjadf9w0BAQUFADCB
kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ
kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29
-----END CERTIFICATE-----

Linux
  1. Comment générer une demande de signature de certificat (CSR) sous Linux

  2. Émettez des certificats SSL gratuits et signés par une autorité de certification pour les serveurs Web de LetsEncrypt

  3. Comment faire en sorte qu'Apache 2 arrête de demander un mot de passe pour un certificat SSL ?

  4. Comment générer une clé CSR et installer un certificat SSL à partir de CWP ?

  5. Comment générer une clé et un CSR dans cPanel pour votre certificat SSL

Comment générer un CSR dans Plesk 17 ?

Comment générer une clé CSR via WHM ?

Comment générer un CSR et installer un certificat SSL dans SolidCP ?

Comment générer des CSR pour SSL dans cPanel ?

Générer un CSR et une clé privée dans Plesk

Comment générer une CSR (demande de signature de certificat) sous Linux