首页 文章

在EC2 Tomcat服务器上安装SSL

提问于
浏览
8

我正在尝试使用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

将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

接下来,更新$ 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生成的自签名证书工作正常(除强制浏览器警告之外) . 所以似乎问题必须是证书和/或密钥库,但我不确定问题是什么 .

2 回答

  • 3

    Tomat假设密钥库别名为"tomcat",除非您在 Connector. 上指定 keyAlias 属性,只需添加 keyAlias=mydomain ,或使用 keytool. 将别名重命名为"tomcat"

  • 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

相关问题