从 Apache 到 Tomcat 的 SSL 卸载在某处被覆盖

从 Apache 到 Tomcat 的 SSL 卸载在某处被覆盖

我被要求将 Debian Wheezy 上运行 Apache 和 Tomcat-6 的服务器从 HTTP 升级到 HTTPS。我已成功获取并在 Apache 部分安装了 SSL 证书,并检查它们是否正常工作(使用两个不同的 SSL 检查器)。

接下来,我添加了以下块到/etc/apache2/sites-available/default-ssl

<VirtualHost *:80>
    ServerName server.name
    Redirect permanent / https://server.name/
</VirtualHost>

<VirtualHost _default_:443>并将其复制到同一文件中块的末尾:

ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

在 Tomcat 端,该/etc/tomcat6/server.xml文件包含两个活动连接器:

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           URIEncoding="UTF-8"
           redirectPort="8443" />

<Connector address="127.0.0.1" port="8009" protocol="AJP/1.3" redirectPort="8443" />

现在,当我访问 时https://server.name/app/main/login.jspx,我会获得 SSL 连接,但登录后它会消失。
如果我访问https://server.name/app,我会立即被重定向到http://server.name/app/main/login.jspx(无 SSL)。
(如果我只访问https://server.name/,我最终会进入 中定义的重定向页面/var/lib/tomcat6/webapps/ROOT/index.html。)

我做错了什么?我需要改用 AJP 代理吗?

答案1

如果此连接器在代理配置中被使用,请配置proxyNameproxyPort

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           URIEncoding="UTF-8"
           redirectPort="8443"
           scheme="https" 
           proxyName="server.name" 
           proxyPort="443" 
           secure="true" />

您还需要将scheme和属性分别设置为 https 代理的securehttps和。true

要在 apache 服务器中将 http 重定向到 https,请尝试在默认配置中添加指令/etc/apache2/sites-available/000-default.conf

相关内容