nginx を介してリクエスト ヘッダー 'HTTP_X_SSL_CLIENT_S_DN' をプロキシしたい。
これが私たちのサーバーネットワーク構造です。
[front server:443] <---> [nginx proxy:8004] <---> [application server:8008]
(client cert auth)
2台のサーバー([フロントサーバー]と[アプリケーションサーバー])で試したところ、ちゃんと動きました。ヘッダー 'HTTP_X_SSL_CLIENT_S_DN' がアプリケーション サーバーに渡されました。
次に、サーバー [nginx プロキシ] を追加すると、ヘッダー 'HTTP_X_SSL_CLIENT_S_DN' がアプリケーション サーバーに渡されませんでした。
私のnginx設定は以下です。
server {
listen 8004;
index index.html;
location / {
proxy_pass_header Server;
proxy_pass_header X-Scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://app-server/;
# TODO: to proxy 'HTTP_X_SSL_CLIENT_S_DN'
# failed settings
# proxy_pass_request_headers on; # not worked (default: on)
# proxy_pass_header X-SSL-Client-S-DN; # none
# proxy_pass_header X_SSL_CLIENT_S_DN; # none
# proxy_pass_header HTTP_X_SSL_CLIENT_S_DN; # none
# proxy_pass_header HTTP-X-SSL-CLIENT-S-DN; # none
# proxy_set_header X-SSL-Client-S-DN $ssl_client_s_dn; # none
# proxy_set_header X_SSL_Client_S_DN $x_ssl_client_s_dn; # none
# proxy_set_header X-SSL-Client-S-DN $http_ssl_client_s_dn; # none
# proxy_set_header X-SSL-Client-S-DN $http_x_ssl_client_s_dn; # none
}
}
upstream app-server {
server 127.0.0.1:8008;
}
任意のヘルプが適用されます。