2016-03-13 2 views
6

J'utilise nginx comme proxy pour un serveur principal. Le serveur principal utilise également nginx et applique l'authentification par certificat client à l'aide des directives ssl_client_certificate et ssl_verify_client.Nginx proxy_ssl_certificate ne fonctionne pas comme prévu

Dans mon serveur nginx je mis les éléments suivants:

location /proxy { 
    proxy_pass    https://www.backend.com; 

    proxy_set_header  X-Forwarded-Host $host; 
    proxy_set_header  X-Forwarded-Server $host; 
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 

    proxy_ssl_certificate  /etc/nginx/cert/client.crt; 
    proxy_ssl_certificate_key /etc/nginx/cert/client.key; 
} 

selon the nginx docs. Cependant, le backend répond toujours avec un code de réponse de "No required SSL certificate was sent".

Notez que lors de l'émission des requêtes au serveur principal en utilisant wget avec le certificat client, je reçois une réponse 200 OK valide:

wget --certificate=/etc/nginx/cert/client.crt --private-key=/etc/nginx/cert/client.key https://www.backend.com 

Qu'est-ce que je manque dans ma configuration nginx?

Répondre

1

Cette post a semblé résoudre ce problème pour moi.

J'ai dû ajouter le réglage suivant pour que tout fonctionne pour moi.

proxy_ssl_server_name  on;