apache2 反向代理 2 虚拟主机和 SSL

apache2 反向代理 2 虚拟主机和 SSL

我有 2 台服务器:app1.example.biz 和 app2.example.biz 我需要执行以下操作,使用 apache2 作为反向代理,将来自互联网的所有流量重定向到相应的服务器并使用 SSL。我所做的配置允许我将 app1.example.biz 重定向到 https app1.example.biz,然后我就可以访问该服务器。问题是我无法对 app2.example.biz 执行相同操作,当我输入 app2.example.biz 时,它会将我重定向到 https app1.example.biz!!PS:我无法发布两个以上的超链接,因为我是新用户,但我的配置是正确的。


<VirtualHost *:80>
   ServerName app1.example.biz/
    Redirect / https app1.example.biz/

</VirtualHost>

<VirtualHost *:443>

ServerName app1.example.biz
ServerAlias app1.example.biz

ProxyPass / http app1.example.biz/
ProxyPassReverse / http app1.example.biz/
SSLEngine on
SSLCertificateFile    /etc/ssl/servwiki.crt
SSLCertificateKeyFile /etc/ssl/servwiki.key
SSLVerifyClient none

</VirtualHost>

#<VirtualHost *>
#    ServerName app2.example.biz/
#    Redirect / https  app2.example.biz/
#</VirtualHost>

<VirtualHost *>
ProxyPreserveHost On
ServerName  app2.example.biz
ServerAlias  app2.example.biz

ProxyPass / http app2.example.biz/
ProxyPassReverse / http app2.example.biz/
SSLEngine on
SSLCertificateFile    /etc/ssl/servwiki.crt
SSLCertificateKeyFile /etc/ssl/servwiki.key
SSLVerifyClient none

</VirtualHost>

我尝试过:1 / 使用 NameVirtualHost:80 和 NameVirtualHost:443 2 / 像这样命名每个虚拟主机 3 / 添加

 <VirtualHost *>
ServerName www.example.biz
DocumentRoot /usr/local/apache/htdocs
#SSLEngine on
#SSLCertificateFile    /etc/ssl/servwiki.crt
#SLCertificateKeyFile /etc/ssl/servwiki.key
#SSLVerifyClient none
</VirtualHost>

这解决了将 http app1.example.biz 和 http app2.example.biz 重定向到相应服务器的问题,但它不能与 ssl 一起工作!

请帮忙

答案1

据推测,您的第二个虚拟主机配置缺失:443(我不确定这是否只是复制/粘贴错误)。

您将要面对的下一个问题是,您需要能够处理 SSL/TLS 上的多个主机。为此,您需要服务器在 SSL/TLS 握手期间出示该主机名的有效证书,发送任何 HTTP 请求/响应。可以使用以下技术之一完成:

  • 使用单个 IP 地址和单个证书,该证书对您想要同时服务的所有主机都有效。这可以通过具有多个主题备用名称条目(app1.example.bizapp2.example.biz)的证书(有时称为 UCC)或通配符证书(例如*.example.biz,但不鼓励使用它们)来实现。
  • 如果可以,请为每个主机使用不同的 IP 地址。在这种情况下,不要依赖NameVirtualHostHTTPS,而是在每个虚拟主机条目中设置 IP 地址,并使用其证书配置每个虚拟主机部分。
  • 使用单个 IP 地址和多个证书,但您的客户端需要支持服务器名称指示扩展。(例如,Windows XP 上的任何 IE 版本、某些移动客户端和 Java 6 均不支持此功能。)如何在 Apache Httpd 上配置它,请参阅这一页

相关内容