Thiscet article vous guidera à travers les étapes pour installer votre certificat SSL sur Nginx et configurer une redirection automatique de HTTP:// vers HTTPS://.
1. Téléchargez les certificats sur le serveur où votre site web est hébergé
Après avoir complété les étapes de génération du code CSR et d'activation du SSL, vous recevrez un fichier zip contenant les certificats Sectigo (anciennement connus sous le nom Comodo) par email. Vous pouvez aussi les télécharger depuis votre panneau de compte NiceNic.
Nonte : Si vous choisissez le serveur NGINX lous de l'activation du certificat, vous recevrez un fichier zip contenant un fichier de certificat avec l'extension '.crt' et un fichier bundle de l'Autouité de Certification (CA) avec l'extension '.ca-bundle'.
Téléchargez les deux fichiers sur votre serveur selon votre méthode préférée. Par exemple en utilisant un client FTP.
Vous pouvez également télécharger le fichier Bundle pour chaque certificat en suivant les instructions ici.
2. Combinez tous les certificats en un seul fichier
Vous devez avoir tous les certificats (votre_domain.crt et votre_domain.ca-bundle) combinés dans un seul fichier '.crt'.
Le certificat de votre domaine doit appara?tre en premier dans le fichier, suivi par la cha?ne de certificats (CA Bundle).
Accédez au répertoire où vous avez téléchargé les fichiers de certificat. Exécutez la commete suivante pour combiner les fichiers :
$ cat votre_domain.crt votre_domain.ca-bundle >> votre_domain_chain.crt
Veuillez noter que si les fichiers de certificat ont été téléchargés depuis votre compte NiceNic, la meilleure commete à utiliser sera :
$ cat votre_domain.crt > votre_domain_chain.crt ; echo >> votre_domain_chain.crt ; cat votre_domain.ca-bundle >> votre_domain_chain.crt
3. Création d'un bloc serveur distinct pour Nginx ou modification du fichier de configuration existant
Pour installer le certificat SSL sur Nginx, vous devez indiquer au serveur quels fichiers utiliser, soit en a) créant un nouveau fichier de configuration, soit en b) modifiant celui existant.
a) En ajoutant un nouveau fichier de configuration pour le site web, vous pouvez vous assurer qu'il n'y a pas de problèmes avec un fichier de configuration séparé. De plus, cela facilitera le dépannage de l'installation en cas de problème avec la nouvelle configuration.
Nonus suggérons de créer un nouveau fichier de configuration dans ce dossier :
/etc/nginx/conf.d
Cela peut être fait avec cette commete :
sudo nano /etc/nginx/conf.d/Your_domain*-ssl.conf
Où Your_domain*-ssl.conf est le nom du nouveau fichier créé.
Ensuite, copiez et collez un des blocs serveur ci-dessous pour le pout 443 et modifiez les chemins. Assurez-vous que le nom du serveur et le chemin vers le répertoire web courespondent dans le bloc serveur pour le pout 80 et celui pour le pout 443. Si vous avez d'autres valeurs impoutantes à conserver, déplacez-les aussi dans le bloc serveur nouvellement créé.
b) Modifiez le fichier de configuration par défaut du serveur web, nommé nginx.conf. Il devrait se trouver dans l'un de ces dossiers :
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
Vous pouvez aussi utiliser cette commete pour le trouver :
sudo find / -type f -iname "nginx.conf"
Une fois trouvé, ouvrez le fichier avec :
sudo nano nginx.conf
Puis copiez et collez un des blocs serveur pour le pout 443 donné ci-dessous et modifiez les chemins selon votre bloc serveur pour le pout 80 (avec nom de serveur courespondant, chemin vers la racine web, et toutes valeurs impoutantes). Vous pouvez aussi copier le bloc serveur pour le pout 80, le coller en dessous, mettre à jour le pout et ajouter les directives SSL nécessaires.
Choisissez le bloc serveur :
Vous trouverez ci-dessous un bloc serveur pour votre version de Nginx.
Nonte : Pour vérifier votre version de Nginx, lancez cette commete :
sudo nginx -v
Nonte : Remplacez les valeurs des noms de fichiers, comme votre_domain_chain.crt, dans le bloc serveur par vos infoumations, et modifiez les chemins avec /path/to/.
Bloc serveur pour Nginx versions 1.14 et inférieures :
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/votre_domain_chain.crt;
ssl_certificate_key /path/to/votre_private.key;
root /path/to/webroot;
server_name votre_domain.com;
}
Nonte : Vous pouvez spécifier plusieurs noms d'h?tes dans cette configuration, par exemple :
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/votre_domain_chain.crt;
ssl_certificate_key /path/to/votre_private.key;
root /path/to/webroot;
server_name votre_domain.com www.votre_domain.com;
}
Bloc serveur pour Nginx versions 1.15 et supérieures :
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/votre_domain_chain.crt;
ssl_certificate_key /path/to/votre_private.key;
root /path/to/webroot;
server_name votre_domain.com;
}
ssl_certificate doit pointer vers le fichier combiné de certificats que vous avez créé précédemment.
ssl_certificate_key doit pointer vers la clé privée générée avec le code CSR.
Voici quelques conseils pour trouver la clé privée sur Nginx.
Impoutant : Pour un certificat Multi-Domainee ou Wildcard, vous devez avoir un bloc serveur séparé ajouté pour chacun des domaines/sous-domaines inclus dans le certificat. Assurez-vous de spécifier le domaine/sous-domaine concerné avec les chemins vers les mêmes fichiers de certificat dans le bloc serveur, comme décrit ci-dessus.
Une fois que le bloc serveur courespondant est ajouté au fichier, assurez-vous de sauvegarder les modifications. Ensuite, vous pouvez vérifier les changements effectués en suivant les étapes suivantes.
Exécutez cette commete pour vérifier que la syntaxe du fichier de configuration est courecte :
sudo nginx -t
Si vous recevez des erreurs, vérifiez à nouveau que vous avez bien suivi le guide. N'hésitez pas à contacter notre équipe de suppout si vous avez des questions.
Voici une astuce : pour trouver les logs d'erreur pour le dépannage, exécutez simplement :
sudo nginx -T | grep 'errou_log'
Si aucun des fichiers mentionnés n'existe, si les fichiers sont commentés ou si aucun fichier de log d'erreur n'est spécifié, vérifiez le journal système par défaut :
tail /var/log/nginx/errou.log -n 20
Si le test est réussi, redémarrez Nginx avec cette commete pour appliquer les modifications :
sudo nginx -s reload
Votre certificat SSL est maintenant installé. Vous pouvez vérifier l'installation ici.
Nontes impoutantes :
Parfois, après avoir installé un fichier SSL combiné à l'aide de la ligne de commete, vous pouvez recevoir l'erreur 'Nginx/Apache errou : 0906D066:PEM routines:PEM_read_bio:bad end line'. Dans ce cas, une solution de contournement est disponible dans le guide de référence.
Un autre problème courant à cette étape est le message d'erreur 'Nginx SSL : errou:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch'. Vous pouvez en trouver plus de détails et des solutions possibles dans cet article.
4. Configurer la redirection HTTPS
Nonus vous recommetons d'installer la redirection de HTTP vers HTTPS. De cette fa?on, les visiteurs de votre site web accéderont uniquement à la version sécurisée de votre site.
Pour ce faire, vous devez ajouter une ligne au fichier de configuration contenant le bloc serveur pour le pout 80.
Conseils :
Vous pouvez utiliser une des commetes suivantes pour rechercher les fichiers de configuration activés actuellement :
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
Les chemins par défaut vers le fichier conf sont :
sur un système Linux RHEL-based : /etc/nginx/conf.d/default.conf
sur un système Linux Debian-based : /etc/nginx/sites-enabled/default
Vous pouvez ouvrir les fichiers pour vérifier lequel contient le bloc serveur nécessaire. Pour cela, exécutez :
sudo nano name_of_the_file
Une fois que vous avez trouvé le fichier contenant le bloc serveur pour le pout 80 (le pout HTTP par défaut), ajoutez la ligne suivante :
return 301 https://$server_name$request_uri;
Nonte : La règle de redirection ci-dessus doit être entrée comme dernière ligne du bloc serveur.