在Apache for Wildfly上重定向Https请求

时间:2017-08-24 06:45:05

标签: apache ssl wildfly virtualhost virtual-hosts

我正在使用Apache虚拟主机来运行多个网站。我在Front中使用apache,这个apache将url请求重定向到wildfly服务器。

我的Apache配置使用以下代码

正常处理http请求
<VirtualHost *:80>
    ServerAdmin webmaster@mysitedemo.com
    ServerName mysitedemo.com
    ServerAlias www.mysitedemo.com
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    ErrorLog "logs/mysitedemo-error_log"
    CustomLog "logs/mysitedemo-access_log" common
</VirtualHost>

现在我还想处理Https请求,因为我在vhosts文件中添加了以下代码

<VirtualHost *:443>
    ServerAdmin webmaster@mysitedemo.com
    ServerName mysitedemo.com
    ServerAlias www.mysitedemo.com
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / https://localhost:8443/
    ProxyPassReverse / https://localhost:8443/
    ErrorLog "logs/mysitedemo-error_log"
    CustomLog "logs/mysitedemo-access_log" common
</VirtualHost>

但它没有正常给我,以下错误

  

内部服务器错误

     

服务器遇到内部错误或配置错误,无法完成您的请求。

     

请通过webmaster@mysitedemo.com与服务器管理员联系,告知他们此错误发生的时间以及您在此错误发生之前执行的操作。

     

服务器错误日志中可能提供了有关此错误的更多信息。

     

此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。

我在Wildfly服务器上设置了SSL。我是否还需要为Apache购买单独的SSL,还是可以在Apache上使用相同的SSL?如果是,那么请解释一下我该怎么做?

2 个答案:

答案 0 :(得分:2)

  

重定向Apache for Wildfly上的Https请求

如果您使用评论中的其他信息来增加问题中的信息,则可以看到您实际上没有重定向客户端,就像您在问题中的各个位置所声称的那样。如果是重定向,服务器将告诉客户端询问其他服务器。你在这里做的是转发你的Apache作为反向代理工作,并将请求从客户端转发到Wildfly服务器,并将Wildfly的响应发送回客户端。

由于在这种情况下客户端只是直接与Apache服务器交互,因此如果客户端使用HTTPS,则此Apache服务器将执行TLS握手。 这意味着Apache必须配置相应的证书并启用SSL。然后,Apache将终止客户端的原始HTTPS连接。由于您已将ProxyPass配置为HTTPS URL,因此Apache将与代理的Wildfly服务器建立另一个HTTPS连接。而且,从客户端的角度来看,Wildfly服务器是否支持HTTPS并不重要 - 所有重要的是如何访问Apache服务器。

答案 1 :(得分:1)

要从https://siteA重定向到https://siteB,您需要先获得siteA的证书(当然还有siteB),然后正确配置它。在您的情况下,您既没有配置证书也没有在端口443配置https。相反,您刚刚将端口443配置为另一个HTTP(但不是HTTPS)服务器,当然尝试使用HTTPS访问它时会出错。