我正在使用类似于nginx的反向代理来后端应用程序。-客户端使用证书-A.pem连接到nginx,nginx使用与根CA链接的中间CA来验证客户端(全部确定)。
现在出现了问题:- nginx必须使用实际主机使用的相同头(包含证书-A.pem)将请求转发到后端应用程序。转发到后端应用程序的数据包必须与nginx接收的客户端数据包相同。
为什么?因为我有很多客户端要管理(每个客户端都有相同的中间CA颁发的不同证书),所以后端需要证书(用来做一些事情),但是我想用nginx (速度最快)预先验证这个证书。
我已经厌倦了不同的配置,但我不知道如何proxy_set正确的标题
upstream proxy_server {
server 127.0.0.1:8443; <---my backend application
}
server {
listen 443 ssl;
listen [::]:443;
ssl_certificate /home/mender/Projects/utility-scripts/gwsw-root-gen/cert_tree/intermediate_CA/gwsw/x509-med_ca_gwsw.pem;
ssl_certificate_key /home/mender/Projects/utility-scripts/gwsw-root-gen/cert_tree/intermediate_CA/gwsw/x509-med_ca_gwsw-key.pem;
location / {
proxy_pass https://proxy_server;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Custom-Referrer $http_x_custom_referrer;
}
}无法验证证书。
发布于 2019-06-27 16:55:34
转发到后端应用程序的数据包必须与nginx接收的客户端数据包相同。
如果是这样的话,我相信您只需要在stream模式中使用nginx作为TCP代理。我不知道您是否能够在nginx端进行任何验证,但是,这完全取决于后端应用程序。
不可能(我不认为)让nginx建立一个SSL连接,也不可能将加密的数据传递到后端。
https://stackoverflow.com/questions/56795550
复制相似问题