在EC2 Tomcat服务器上安装SSL

在EC2 Tomcat服务器上安装SSL,tomcat,ssl,amazon-ec2,Tomcat,Ssl,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 -ke

我正试图通过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
接下来,更新$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" />
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生成的自签名证书可以正常工作(强制浏览器警告除外)。因此,问题似乎一定与证书和/或密钥库有关,但我不确定问题是什么。

Tomat假定密钥库别名为“tomcat”,除非您在
连接器上指定
keyAlias
属性。
只需添加
keyAlias=mydomain
,或将别名重命名为“tomcat”使用
keytool.

Tomcat文档对keyAlias说:“如果没有指定,将使用在密钥库中读取的第一个密钥。”,但这是一个很好的捕获。然而,它并没有解决我所有的问题。我联系了GeoTrust,他们建议下载一个PKCS#7证书,这很有效。奇怪的是,tomcat文档说“tomcat目前只在JKS、PKCS11或PKCS12格式的密钥库上运行”。最后是与CA的两次支持聊天,与bounty的stack overflow post,数小时的openssl和keytool测试。经验教训:看来CA在接到支持电话后,有最好的文档(而不是tomcat)


来自keyAlias上的tomcat文档:“如果未指定,将使用在密钥库中读取的第一个密钥。”不管怎样,这都给了你信任,因为你让我越过了第一个障碍。希望这样可以处理得更好。文档可能会这么说,但这不是我的经验,它实际上是这样工作的。经过这次经验,我相信你。我认为tomcat应该修复或删除他们的SSL文档。最好不要,那就错了。谢谢!在这篇文章中对我帮助最大的是让我意识到我需要在端口80和443(EC2安全组)上打开流量,并修改iptables。
54.200.126.130  www.mydomain.net
54.200.126.130  mydomain.net
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: