我正在尝试使用 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 的证书,请进行重定向,然后客户端直接连接到该主机,但必须将其公开。