我正在尝试在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
将ssr提交到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
接下来,更新$ 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" />
然后重启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
www.mydomain.net的DNS尚未建立,因此我目前正在使用修改后的/ etc / hosts进行测试:
54.200.126.130 www.mydomain.net 54.200.126.130 mydomain.net
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:
切换到使用keytool生成的自签名证书可以正常工作(强制性浏览器警告除外)。因此,看来问题一定出在证书和/或密钥库上,但我不确定是什么问题。
除非您keyAlias在Connector.Just add 上指定属性,否则Tomat假定密钥库别名为“ tomcat” keyAlias=mydomain,或者将别名重命名为“ tomcat”keytool.
keyAlias
Connector.
keyAlias=mydomain
keytool.