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-----