2016-03-13 31 views
6

Sto utilizzando nginx come proxy per un server di backend. Anche il server di back-end utilizza nginx e applica l'autenticazione del certificato client utilizzando le direttive ssl_client_certificate e ssl_verify_client.Nginx proxy_ssl_certificate non funziona come previsto

Nel mio server nginx ho impostato la seguente:

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; 
} 

secondo i the nginx docs.

Tuttavia, il backend risponde ancora con un codice di risposta 400 "No required SSL certificate was sent".

Si noti che al momento del rilascio le richieste al server back-end utilizzando wget con il certificato client, ottengo una valida risposta 200 OK:

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

Quello che mi manca nella mia configurazione nginx?

risposta

1

Questo post sembrava risolvere questo problema per me.

Ho dovuto aggiungere la seguente impostazione per far funzionare le cose per me.

proxy_ssl_server_name  on;