使用 mod_rewrite 或 ProxyPass 时的 Apache 目标虚拟主机证书

使用 mod_rewrite 或 ProxyPass 时的 Apache 目标虚拟主机证书

我正在尝试使用 mod_rewrite 或 ProxyPass 将客户端的请求从 443 上的虚拟主机 A 重定向(PT)到端口 4434 上的另一个虚拟主机 B,同样使用 SSL。就像这样:

SSLProxyEngine on
SSLProxyVerify none 
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off 
ProxyPassMatch    ^/vd https://localhost:4434

我正在尝试使用 mod_rewrite 的方法如下:

RewriteEngine on
RewriteRule (.*) https://%{HTTP_HOST}:4434%{REQUEST_URI} [PT]

问题是我的客户端验证了服务器证书,并且在响应时客户端获得了 443 端口上的虚拟主机 A 的证书,而不是 4434 端口上的虚拟主机 B 的证书,因此 SSL 握手失败。

有什么办法可以解决这个问题吗?谢谢

答案1

简短回答:不

详细回答:客户端将使用虚拟主机 A 的证书进行身份验证,因为这是它要连接的地方。通过代理模式在后端发生的任何事情都是透明的。如果您想使用虚拟主机 B 的证书,请进行重定向,然后客户端直接连接到该主机,但必须将其公开。

相关内容