我正在尝试为我的应用程序设置 https 登录。在我的本地 Ubuntu 环境中,它工作正常,但是当我将所有内容部署到 Amazon EC2 Ubuntu 时,我无法让它工作。
以下是我所做的:
1. 使用以下方法生成密钥库:
keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat6/keystore
2. 修改 tomcat server.xml 文件以包含:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/etc/tomcat6/keystore"
keystorePass="tomcat"/>
3. 修改了我的 spring xml 文件以包括:
<http auto-config="false" entry-point-ref="delegatingAEP">
...
<port-mappings>
<port-mapping http="8080" https="8443"/>
</port-mappings>
...
<intercept-url pattern="/login" access="IS_AUTHENTICATED_ANONYMOUSLY" requires-channel="https"/>
<intercept-url pattern="/j_spring_security_check" access="IS_AUTHENTICATED_ANONYMOUSLY" requires-channel="https"/>
...
</http>
4. 对于我的 Amazon EC2 实例,我在 EC2 安全组中打开了 HTTPS 端口 8443。我的本地 Ubuntu 实例不需要。
5. 重新启动Tomcat。当我尝试在 Amazon EC2 中访问http://www.mysite.com:8080/时,它被成功重定向到https://www.mysite.com:8443/login,但是内容为“此网页不可用” .
相同的配置在我本地的 Ubuntu 中运行良好。我的本地服务器和 Amazon Ec2 服务器都在 Ubuntu 11.10 上运行。
我的配置哪里可能出错?
非常感谢您的宝贵时间。