Nginx - Installer un certificat SSL

Dernière mise à jour sur 28 sept. 2023 à 10:23:05.
Catégorie: Tout sur les certificats SSL | Configuration SSL

Linux Nginx

Ce manuel vous explique comment installer un certificat qui vient de vous être émis sur le serveur Web Nginx. Pour en savoir plus comment générer votre demande de certificat, consultez l'article « Comment générer une demande de certificat avec OpenSSL ».

Nginx - Installation certificat SSL

Pas 1: Créez un bundle de certificats

Contrairement à Apache, Nginx requiert que tous ses certificats SSL soient regroupés dans un seul fichier contenant le certificat root, les certificats intermédiaires, et votre propre certificat. L'ordre dans laquelle ils sont concaténés est importante:

  • Le premier certificat dans le fichier doit être le vôtre
  • Suivi par les certificats intermédiaires, s'il y en a - en général un, parfois deux
  • Ensuite le certificat root

Le certificat root n'est pas strictement nécessaire, puisqu'il est déjà connu des navigateurs, mais cela ne peut mal de l'inclure pour obtenir une chaine complète.

Selon l'émetteur de certificats que vous avez choisi, vous recevrez ou bien un seul fichier pret à l'emploi contenant tous les certificats, un fichier contenant votre certificat et un autre contenant tous ceux de l'émetteur, ou des fichiers distincts pour chaque certificat. Le plus souvent, ce sera le deuxième scénario, ou votre certificat sera indépendant, et les autres seront groupés, pour être employé directement dans Apache.

Si vous recevez de votre CA des fichier distincts, employer la commande suivante pour les concaténer dans l'ordre inverse. S'il n'y a qu'un certificat intermédiaire, bien entendu n'en ajoutez qu'un.

cat www.mondomaine.fr.crt intermediaire_2.crt intermediaire_1.crt CA_root.crt >> /etc/certs/bundle.crt

Si vous reçu votre certificat et un bundle des certificats de l'émetteur, concaténez-les de la façon suivante:

cat www.mondomaine.fr.crt ca-bundle.crt >> /etc/certs/bundle.crt

Si vous avez reçu tous vos certificats en un seul fichier, il vous suffit de le copier dans le dossier où vous gardez vos certificats, par exemple /etc/certs.

Pas 2: Modifiez le fichier virtual hosts de Nginx

Ouvrez le fichier virtual hosts SSL de votre serveur Nginx. Suivant votre distribution, il pourrait se trouver à un des endroits suivants, ou même totalement ailleurs si vous avez installé votre serveur Nginx de source - mais dans ce cas là, ce manuel-ci ne vous apportera pas grand-chose.:

  • /etc/nginx/conf.d/ssl.conf (Red Hat, CentOs et Fedora Linux)
  • /etc/nginx/sites-available/www.mydomain.com (Debian et Ubuntu)

Ajouter un nouveau bloc server au fichier virtual hosts. Notez que dans l'exemple ci-dessous, vous devrez modifier les dossiers pour qu'il pointent vers la racine de votre site web, et les directives SSL pour qu'elles correspondent à l'endroit où vous avez sauvegardé votre clé et vos certificats. Il peut être plus aisé de copier un site web existant et d'en modifier les paramètres.

server {
<strong> listen 443;
 ssl on;
 ssl_certificate /etc/certs/bundle.crt;
 ssl_certificate_key /etc/certs/www.mondomaine.fr.key;
</strong> <strong>ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
</strong> <strong>ssl_prefer_server_ciphers on;</strong>

 server_name www.mondomaine.fr;
 access_log /var/log/nginx/nginx.vhost.access.log;
 error_log /var/log/nginx/nginx.vhost.error.log;
 location / {
 root /home/www/public_html/www.mondomaine.fr/public/;
 index index.html;
 }
}

Notez bien que la configuration ci-dessus n'est qu'une configuration minimale d'un site web SSL, et qu'il est important de paramétrer votre serveur Nginx pour une meilleure performance et une plus grande sécurité. Kinamo vous conseille de consulter les articles à ce sujet dans la Knowledge Base.

Pas 3: Testez your configuration

C'est en général une bonne idée de tester votre configuration avant de redémarrer Nginx, pour ne pas entraver la bonne marche d'autres sites s'il y a une erreur de paramétrage. Modifier la commande ci-dessous si votre fichier de configuration principal de Nginx se trouve à un autre endroit.

nginx -t -c /etc/nginx/nginx.conf

Pas 4: Redémarrer Nginx

Redémarrez Nginx pour activer la nouvelle configuration:

/etc/init.d/nginx restart

Pas 5: Déboguage

Si vous n'avez pas concaténé vos certificats dans l'ordre correct, Nginx refusera de démarrer et affichera un message d'erreur similaire au suivant:

SSL_CTX_use_PrivateKey_file(" ... /www.mondomaine.fr.key") failed
 (SSL: error:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch)

Dans ce cas, réessayez de créer votre fichier de certificats en respectant l'ordre exact.

Si votre certificat ne s'affiche pas correctement dans le navigateur, contrôlez si la chaine entière de certificats est envoyé par le serveur web avec la commande suivante, en remplaçant www.kinamo.be par votre propre nom de domaine:

openssl s_client -connect www.kinamo.be:443
...
Certificate chain
 0 s:/1.3.6.1.4.1.311.60.2.1.3=BE/businessCategory=Private Organization/serialNumber=0861.077.215/C=BE/ST=Antwerpen/L=antwerpen/O=Kinamo NV/CN=www.kinamo.be
 i:/C=US/O=GeoTrust Inc./CN=GeoTrust Extended Validation SSL CA - G2
 1 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Extended Validation SSL CA - G2
 i:/C=US/O=GeoTrust Inc./CN=GeoTrust Primary Certification Authority

Vous devriez voir une chaine de certificats commençant par le vôtre et se terminant par le certificat principal de l'émetteur.

Pas 6: Test de sécurité

Visitez la page de test de Qualys SSL Labs pour vérifier si votre serveur web et votre certificat correspondent au dernières normes de sécurité.


Articles connexes

Paramètres des serveurs mail Kinamo (feuille de triche)

L'article suivant vous donne un résumé de la configuration et noms du serveurs mail de Kinamo. Avec la liste ici...

En savoir plus

Créer un filtre anti-spam avec le Kinamo Webmail

L'article suivant vous explique comment ajouter un filtre spécial pour mettre des messages SPAM automatiquement dans un dossier dans votre...

En savoir plus

Acheter un certificat SSL? Qu'est un certificat SSL?

Vous voulez acheter un certificat SSL? Mais, c'est quoi un certificat SSL? Et pourquoi est-ce que tous le monde dit...

En savoir plus

Besoin d'aide supplémentaire?

Vous n'avez pas obtenu de réponse à toutes vos questions?
Ne vous inquiétez pas, faites une demande d'assistance!

Sélectionnez votre langue

Toutes les langues: