2016-07-14 180 views
6

是否有可能将Nginx反向代理与SSL Pass-through一起使用,以便它可以将请求传递给需要客户端证书身份验证的服务器。Nginx反向代理中的SSL传递?

这意味着服务器需要拥有客户端服务器的证书,并且不需要Nginx反向代理服务器的证书。

回答

7

不知道有多少它可以在你的情况下工作,但Nginx的更新(1.9.3+)版本可以通过(加密)直接TLS包到上游服务器,使用stream block

stream { 
    server { 
    listen  443; 
    proxy_pass backend.example.com:443; 
    } 
} 

请注意,例如它不能使用server_name指令(因为它本质上是在TCP级别上运行,并且对TLS一无所知),因此无法创建虚拟主机。

+0

这可以正常工作,但无法登录到工作,访问日志为空 – radtek

+0

访问日志很可能无法在'stream'模式下工作:Nginx在该模式下操作时不知道HTTP(并且不能拦截HTTPS,因为它是加密的!),因此除了“IP xxxx打开连接,我们将其代理到backend.example.com:443”之外,不能记录任何内容。 –

+1

是的,找到了关于该文件。您可以添加一个error_log并将其设置为调试以获取某种输出。 – radtek