ax1*_*man 9 ssl tomcat amazon-ec2
我正在尝试使用Ubuntu和Tomcat 7.0.52在AWS EC2实例上运行CA证书/ SSL.浏览器无法连接.以下是我通过的步骤:
keytool -genkey -alias mydomain -keyalg RSA -keystore mydomain.keystore -keysize 2048
<fill out information>
keytool -certreq -keyalg RSA -alias mydomain -file certreq.csr -keystore ../mydomain.keystore
Run Code Online (Sandbox Code Playgroud)
将csr提交给ssls.com/Geotrust,然后收回:bundle.crt www.mydomain.net.crt
将证书导入密钥库:
keytool -import -trustcacerts -alias root -keystore ../mydomain.keystore -file bundle.crt
keytool -import -alias mydomain -keystore ../mydomain.keystore -file www.mydomain.net.crt
Run Code Online (Sandbox Code Playgroud)
接下来,更新$ TOMCAT_HOME/config/server.xml:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="8443" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/home/ubuntu/mydomain.keystore"
keystorePass="xxxxxxx"
clientAuth="false" sslProtocol="TLS" />
Run Code Online (Sandbox Code Playgroud)
并重新启动tomcat.
具有安全组的EC2实例设置为允许端口80和443.
ipables更改为重定向80-> 8080和443-> 8443:
sudo iptables -t nat -n -L PREROUTING --line-numbers
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 redir ports 8443
2 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8080
Run Code Online (Sandbox Code Playgroud)
www.mydomain.net的DNS还没有到位,所以我目前正在使用修改后的/ etc/hosts进行测试:
54.200.126.130 www.mydomain.net
54.200.126.130 mydomain.net
Run Code Online (Sandbox Code Playgroud)
sslscan不会返回任何有效的密码.它们都被列为"被拒绝".
openssl测试:
openssl s_client -connect www.mydomain.net:443
CONNECTED(00000003)
64007:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:602:
Run Code Online (Sandbox Code Playgroud)
切换到使用keytool生成的自签名证书工作正常(除强制浏览器警告之外).所以似乎问题必须是证书和/或密钥库,但我不确定问题是什么.
Tomat 假定密钥库别名为“tomcat”,除非您在Just add上指定该keyAlias属性,或者使用以下命令将别名重命名为“tomcat”Connector.keyAlias=mydomainkeytool.
| 归档时间: |
|
| 查看次数: |
6664 次 |
| 最近记录: |