2014-04-02 185 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

相關問題