2014-04-02 186 views
7

我正在尝试使用Ubuntu和Tomcat 7.0.52获得在AWS EC2实例上工作的CA cert/SSL。浏览器无法连接。下面是我去通步骤:在EC2 Tomcat服务器上安装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 

提交证书签名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 /配置/ 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 DNS .NET还没有到位,所以我目前正在修改/ 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正常工作(除强制性的浏览器警告)生成的自签名的证书。所以看起来问题必须是证书和/或密钥库,但我不确定问题是什么。

+0

谢谢!在这篇文章中,最让我感触最深的是让我意识到我需要在端口80和443(EC2安全组)上打开流量,并修改iptables。 – brhlavinka

回答

3

托马特假设“雄猫”的密钥库别名,除非您指定的Connector.keyAlias属性只是添加keyAlias=mydomain,或重命名您的别名为“雄猫”的keytool.

+1

来自keyAlias上的tomcat文档:“如果未指定,将使用在密钥库中读取的第一个密钥。” – ax123man

+0

无论如何给了你信贷,因为你让我超过了第一个障碍。希望SO能更好地处理这个问题。 – ax123man

+0

该文档可能会说,但它不是我的经验,它实际上这样工作。 – EJP

1

Tomcat的文档说keyAlias的:“如果不是指定在密钥库中读取的第一个密钥将被使用。“,但这是一个很好的结果。但是,它并没有解决我所有的问题。我联系了GeoTrust,他们建议下载一个可以工作的PKCS#7证书。奇怪的是,鉴于tomcat文档说“Tomcat目前只在JKS,PKCS11或PKCS12格式密钥库上运行”。最后,它是两次支持CA的聊天,堆栈溢出帖子与赏金,几小时的openssl和keytool测试。获得的经验教训:看起来CA是因为他们得到支持电话,拥有最好的文档(不是tomcat)。

https://knowledge.geotrust.com/support/knowledge-base/index?page=content&id=SO15323

相关问题