Comprendre F5 · NGINX

NGINX : HTTPS, certificats et diagnostic TLS

Comprendre la terminaison TLS, les certificats, le SNI et les deux côtés d’un proxy HTTPS, avec une recette qui conserve la validation.

Thomas SAUTIER · Publié le · Révisions de certification

  • Référence de F5CAN3 consultée le · Objectifs abordés : F5CAN3 1.4, F5CAN3 1.5.
  • Référence de F5CAN4 consultée le · Objectifs abordés : F5CAN4 1.3.
  • Référence de F5CANR consultée le · Objectifs abordés : F5CANR 3.4, F5CANR 3.5, F5CANR 4.3.

Ce guide concerne NGINX Open Source. Vérifiez la version, les modules compilés ou chargés et les particularités de votre paquet.

Identifier où TLS se termine

En terminaison TLS, NGINX déchiffre les échanges clients et peut traiter HTTP. Avec un upstream HTTPS, il établit une seconde connexion chiffrée ; ce ne sont pas les mêmes certificats ni nécessairement les mêmes noms. En passthrough stream, il relaie le flux sans devenir le terminateur TLS de l’application.

Un certificat serveur établit une identité côté service. Un certificat client concerne l’authentification du client quand elle est demandée. Leur simple présence sur le disque ne configure pas cette politique. Identifiez le nom attendu, la chaîne de certification, les autorités de confiance et la clé privée correspondante.

Repère visuelHTTPS, certificats et diagnostic TLS
HTTPS, certificats et diagnostic TLS La terminaison et le rechiffrement établissent deux connexions TLS. Leur confiance et leur diagnostic doivent être vérifiés indépendamment. 01 Client nom et confiance 02 TLS frontal certificat NGINX 03 HTTP traitement du proxy 04 TLS upstream identité du backend 05 Application réponse métier 06 Diagnostic côté de la panne
La terminaison et le rechiffrement établissent deux connexions TLS. Leur confiance et leur diagnostic doivent être vérifiés indépendamment.

Sources : NGINX / F5, Configuring HTTPS servers ; NGINX / F5, Module ngx_http_ssl_module ; NGINX / F5, Module ngx_stream_proxy_module.

Préparer une écoute HTTPS

Le fragment appartient au contexte http ; les chemins doivent pointer vers une chaîne et une clé valides pour le laboratoire. Les versions TLS autorisées doivent être compatibles avec le binaire et sa bibliothèque. Ce fragment n’est pas une politique complète de chiffrement ou de conformité.

Le fichier de certificat doit présenter la chaîne dans l’ordre attendu. Protégez la clé privée et contrôlez qui peut lire sa copie et ses sauvegardes. Une redirection HTTP vers HTTPS est une décision séparée : elle doit préserver le nom public attendu sans construire une destination à partir d’une donnée non maîtrisée.

HTTPS local : certificat, clé et backend à préparerConfiguration NGINX · contexte http
server {
    listen 127.0.0.1:8443 ssl;
    server_name revision.example;
    ssl_certificate /etc/nginx/tls/revision-chain.pem;
    ssl_certificate_key /etc/nginx/tls/revision-key.pem;
    ssl_protocols TLSv1.2 TLSv1.3;

    location / {
        proxy_pass http://127.0.0.1:9000;
    }
}

Sources : NGINX / F5, Configuring HTTPS servers ; NGINX / F5, Module ngx_http_ssl_module.

Séparer handshake et réponse HTTP

Un échec TLS peut se produire avant toute requête HTTP. Comparez nom utilisé, SNI, certificat reçu, chaîne et protocoles. Tester l’adresse IP sans le nom peut sélectionner un autre server ou échouer sur l’identité. Désactiver la validation du certificat ne démontre pas que cette identité est correcte.

Pour l’upstream HTTPS, examinez séparément l’autorité de confiance, le nom vérifié, proxy_ssl_verify et proxy_ssl_server_name. Une réussite entre client et NGINX ne prouve pas que NGINX authentifie correctement le backend. Les journaux doivent préciser le côté de la panne.

Sources : NGINX / F5, Module ngx_http_proxy_module ; NGINX / F5, Module ngx_http_ssl_module ; NGINX / F5, Module ngx_http_log_module.

Exercice : nom correct et nom incorrect

Préparez une autorité de laboratoire et un certificat adapté. Testez le nom correct avec cette autorité, puis un nom qui ne figure pas dans le certificat. Décrivez pourquoi la seconde validation doit échouer, et distinguez ce refus du cas où le backend HTTP est indisponible.

Votre recette doit conserver la validation du certificat. Le résultat dépend du matériel de confiance réellement préparé ; aucun succès n’est supposé dans ce guide. Pour diagnostiquer, comparez certificat attendu et reçu avant de changer les versions ou les suites de chiffrement.

Sources : NGINX / F5, Configuring HTTPS servers ; NGINX / F5, Module ngx_http_ssl_module.

Sources et portée

Références consultées le . Les exemples utilisent des noms et adresses de documentation à remplacer. Les commandes de lecture affichent l’existant ; les captures et requêtes de diagnostic sont à limiter au périmètre autorisé.

Retrouver le parcours de lecture F5 NGINX

Continuer la série F5

Explorer tous les guides du parcours F5 NGINX

Découvrir l’expertise F5 de Samhan

Échange

Besoin d’éclaircir votre architecture F5 ?

Échangeons sur vos flux, vos contraintes de disponibilité et votre services applicatifs.