web-dev-qa-db-fra.com

NGINEX Équilibrage de la charge: nom SSL en amont

J'ai la configuration Nginx suivante pour équilibrer la charge entre différents nœuds. Cependant, lorsque j'essaie de rediriger le trafic que j'obtiens 502 Bad Gateway.

En lisant le journal d'erreur, j'ai découvert que le problème est lié au fait que mon équilibreur de charge Nginx tente de vérifier la validité du certificat X509 [~ # ~ # ~] pour les différents nœuds (backend1.example.com,backend2.example.com), mais pour le nom de l'amont backend.example.com (Sans le numéro), conduisant à l'erreur indiquée ci-dessous.

Comment puis-je dire NGinx d'utiliser le nom d'hôte du nœud transféré, au lieu de celui de l'amont?

Journal d'erreur :

upstream SSL certificate does not match "backend.example.com" while SSL handshaking to upstream...

Configuration :

upstream backend.example.com {
   least_conn;
   server backend1.example.com:443
   server backend2.example.com:443
}
server {

        listen [::]:443 ssl ipv6only=on;
        listen 443 ssl;
        server_name example.com;

        location / {
                proxy_pass https://backend.example.com;

                proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
                proxy_ssl_session_reuse on;
                proxy_ssl_verify       on;
                proxy_ssl_verify_depth 2;
                proxy_set_header Host $Host;
        }
    ssl_certificate /etc/letsencrypt/.../fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/.../privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
4
AndreaCostanzo1

Selon les développeurs nginx Vous devez partager le même certificat TLS entre tous les serveurs Backend. Voir le rapport de bogue suivant https://trac.nginx.org/nginx/ticket/1307#Comment:5

1
AlexD