我被要求将在 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)。
(如果我去 just https://server.name/
,我最终会出现在 中定义的重定向页面/var/lib/tomcat6/webapps/ROOT/index.html
。)
我究竟做错了什么?我需要改用 AJP 代理吗?
如果此连接器正在代理配置中使用,请配置
proxyName
,proxyPort
。您还需要将
scheme
和secure
属性分别设置为 https 代理的值https
和。true
要将 http 重定向到 apache 服务器中的 https,请尝试在默认配置中添加指令
/etc/apache2/sites-available/000-default.conf
。