这是一个可能很奇怪而且可能也是错误地被问到的问题。
我有以下网络结构/计划...:
这个想法是,负责/授权网络 1 和 domain1.com 的人拥有自己的 Rev. Proxy,他们负责管理和保管 SSL 证书。这同样适用于网络 2。
问题是,这真的可能吗?不幸的是,我对 SSL 和代理不是很熟悉。我怀疑持有 SSL 证书的 Rev. Proxy 一定是前端。如果是这样的话,它可能无论如何都行不通。那么问题是还有其他方法吗?一种基于 http/https 的 NAT?听起来有点不对劲……但我认为这个想法很清晰。
如果基本可行,那么问题就是 HaProxy->Nginx 的顺序是否正确?以及是否有人可以给我一些关于如何正确配置前端代理的提示或链接。
非常感谢您的回答。
更新: 对于那些有类似想法的人,haproxy 配置:
# Automaticaly generated, dont edit manually.
# Generated on: 2024-10-07 20:55
global
maxconn 1000
stats socket /tmp/haproxy.socket level admin expose-fd listeners
uid 80
gid 80
nbthread 1
hard-stop-after 15m
chroot /tmp/haproxy_chroot
daemon
tune.ssl.default-dh-param 2048
server-state-file /tmp/haproxy_server_state
frontend Front
bind your_public_ip:80 name your_public_ip:80
bind your_public_ip:443 name your_public_ip:443
mode tcp
log global
timeout client 30000
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
acl app1 req_ssl_sni -m end domain1.de
acl app2 req_ssl_sni -m end domain2.de
use_backend Domain1_ipvANY if app1
use_backend Domain2_ipvANY if app2
backend Domain1_ipvANY
mode tcp
id 100
log global
timeout connect 30000
timeout server 30000
retries 3
load-server-state-from-file global
stick-table type binary len 32 size 30k expire 30m
acl clienthello req_ssl_hello_type 1
acl serverhello rep_ssl_hello_type 2
tcp-request inspect-delay 5s
tcp-request content accept if clienthello
tcp-response content accept if serverhello
stick on payload_lv(43,1) if clienthello
stick store-response payload_lv(43,1) if serverhello
server ProxyMan 192.168.7.1:8443 id 102 check inter 1000
backend Domain2_ipvANY
mode tcp
id 100
log global
timeout connect 30000
timeout server 30000
retries 3
load-server-state-from-file global
stick-table type binary len 32 size 30k expire 30m
acl clienthello req_ssl_hello_type 1
acl serverhello rep_ssl_hello_type 2
tcp-request inspect-delay 5s
tcp-request content accept if clienthello
tcp-response content accept if serverhello
stick on payload_lv(43,1) if clienthello
stick store-response payload_lv(43,1) if serverhello
server ProxyMan 192.168.8.1:8443 id 103 check inter 1000