我被要求将 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
如果此连接器在代理配置中被使用,请配置proxyName
,proxyPort
。
<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 代理的secure
值https
和。true
要在 apache 服务器中将 http 重定向到 https,请尝试在默认配置中添加指令/etc/apache2/sites-available/000-default.conf
。