web-dev-qa-db-fra.com

Nginx - Upstream SSL - connexion fermée homologue dans la négociation SSL

Je reçois cette erreur:

Frontend d'erreur: 502 Bad Gateway

99.110.244: 443

2017/09/28 13:03:51 [erreur] 34080 # 34080: * 1062 connexion fermée homologue dans la négociation SSL (104: connexion réinitialisée par l'homologue) pendant la négociation SSL en amont, client: 10.210.0.81, serveur: webshop.izegem .be, demande: "GET/HTTP/1.1", en amont: " https://10.1.10.61:443/ ", hôte: "webshop.domain.be"

Config:

        # Zone voor connection logging
        limit_conn_zone $binary_remote_addr zone=izSSL_webshop-api_CZ:10m;

        # Zone voor rate logging
        # Hoge rate limit.  x r/s is soms wat snel
        # 10 MB (10m) will give us enough space to store a history of 160k requests.
        limit_req_zone $binary_remote_addr zone=izSSL_webshop-api_RZ:10m rate=20r/s;


upstream webshop_domain_be {
        server webshop.domain.be:443;
}


server {
        listen       443 ssl;
        server_name  webshop.domain.be webshop;

        client_max_body_size 80M;

        ssl_session_cache    shared:webshopSSL:1m;
        ssl_session_timeout  10m;
        ssl_certificate /var/www/certs/webshop.domain.be/webshop.domain.be-chain.pem;
        ssl_certificate_key /var/www/certs/webshop.domain.be/webshop.domain.be-key.pem;
        ssl_verify_client off;
        ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;

        ssl_ciphers RC4:HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;


        location / {

                proxy_ssl_session_reuse off;
                proxy_pass $scheme://webshop_domain_be;

        }
}

version nginx: nginx/1.10.3 (Ubuntu)

L'autre serveur (10.1.10.61) est un IIS serveur avec le même certificat que j'utilise dans ce proxy (correct?). Ce n'est pas un problème IIS; et le serveur proxy peut atteindre 10.1.10.61/port 443

Configuration basée sur https://serverfault.com/questions/583374/configure-nginx-as-reverse-proxy-with-upstream-ssl

J'utilise des certificats Let's Encrypt.

6
Jeffrey

L'ajout de cette ligne après le proxy_pass a fonctionné pour moi.

proxy_ssl_server_name activé;

Avant cela, je l'ai fait de ici

Dans REDHAT 7/CentOS 7/Oracle Linux 7: installez le certificat dans votre environnement.

  1. Téléchargez le certificat PEM actif à partir de: https://letsencrypt.org/certificates/ dans/etc/pki/ca-trust/source/anchors
  2. Exécuter: Sudo update-ca-trust

Je ne sais pas si ces 2 dernières étapes étaient nécessaires, mais les deux ont fonctionné pour moi.

À votre santé,

8
Masda

Changez votre amont pour utiliser l'IP

upstream webshop_domain_be {
        server <IP>:443;
}

Et puis changez votre proxy_pass bloquer vers

location / {
   proxy_ssl_session_reuse off;
   proxy_ssl_server_name "webshop.domain.be";
   proxy_pass $scheme://webshop_domain_be;
}

Si ce qui précède ne fonctionne pas, ajoutez proxy_ssl_server_name on; aussi à la config

1
Tarun Lalwani

j'utilise ce @nginx

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
ssl_buffer_size 4k;

avec

grep worker_processes /etc/nginx/nginx.conf
worker_processes auto; <<<-- auto not the default value "1"
0
thE_iNviNciblE

Pour améliorer l'autre réponse, je dirais que

upstream est vraiment important

Pour une redirection simple d'un domaine vers un autre, utilisez simplement ceci:

http {
....
upstream someserver {
        server your.domain.name.com:443;
}

location / {
   proxy_pass https://someserver;
}

}
0
Vyacheslav