2014-04-02 3 views
7

Ubuntu 및 Tomcat 7.0.52를 사용하여 AWS EC2 인스턴스에서 작동하는 CA 인증서/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에 CSR을 제출, 그리고 다시 나타납니다 스토어에

www.mydomain.net.crt bundle.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

> 8080 80 및 443-> 8443 리디렉션 만든

ipables 변경 : www.mydomain에 대한

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 

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: 

(의무 브라우저 경고 제외) 잘 작동 키 도구로 생성 자체 서명 인증서로 전환. 따라서 문제는 인증서 및/또는 키 저장소와 관련이 있어야하지만 문제가 무엇인지 확실하지 않습니다. 당신은 그냥 함께 "바람둥이"로 별칭을 keyAlias=mydomain을 추가하거나 이름을 변경하려면 Connector.keyAlias 속성을 지정하지 않는

+0

고마워요! 이 포스트의 어떤 것보다 나를 도왔던 것은 포트 80 & 443 (EC2 보안 그룹)에서 트래픽을 열 필요가 있음을 깨닫게하고 iptables도 수정합니다. keyAlias에서 tomcat 문서의 – brhlavinka

답변

3

Tomat는 "바람둥이"의 키 스토어 별명을 가정 keytool.

+1

: "지정하지 않으면 키 스토어에서 읽은 첫 번째 키가 사용됩니다." – ax123man

+0

어쨌든 당신은 첫 번째 장애물을 지나쳐 버렸으므로 크레딧을 줬습니다. SO가 이걸 더 잘 처리 할 수 ​​있기를 소원합니다. – ax123man

+0

설명서에 나와있는 내용이 실제로 그렇게 작동한다는 것이 내 경험이 아닐 수도 있습니다. – EJP

1

톰캣 문서가 keyAlias의 말 : "그렇지 않다면 키스트 아로 읽힌 최초의 키가 지정되었을 경우에 사용됩니다. ",하지만 좋은 캐치입니다. 그러나 모든 문제를 해결하지는 못했습니다. GeoTrust에 연락하여 PKCS # 7 인증서를 다운로드하는 것이 좋습니다. 이상하게도 Tomcat docs는 "Tomcat은 현재 JKS, PKCS11 또는 PKCS12 형식 키 스토어에서만 작동합니다"라고 말합니다. 결국 CA와의 2 건의 지원 채팅이었습니다. 현상금과 함께 스택 오버 플로우 게시물, openssl 및 keytool 테스팅 시간이었습니다. 교훈 : 지원 요청을받은 CA가이 문서에 대한 최상의 설명서를 가지고 있음이 나타납니다 (바람둥이가 아님).

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