2014-04-02 7 views
7

Próbuję uzyskać certyfikat CA/SSL działający na instancji AWS EC2 z Ubuntu i Tomcat 7.0.52. Przeglądarka nie może się połączyć. Oto kroki poszedłem thru:Zainstaluj SSL na serwerze Tomcat EC2

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 

złożyć CSR ssls.com/Geotrust i otrzymać z powrotem: bundle.crt www.mydomain.net.crt

certs import język kluczy:

keytool -import -trustcacerts -alias root -keystore ../mydomain.keystore -file bundle.crt 
keytool -import -alias mydomain -keystore ../mydomain.keystore -file www.mydomain.net.crt 

obok, aktualizacja $ 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" /> 

i ponownie uruchom tomcat.

instancja

EC2 z grup zabezpieczeń są tworzone w celu umożliwienia port 80 i 443.

ipables zmiany wprowadzone do przekierowania 80-> 8080 i 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 

DNS dla www.mydomain .net nie jest jeszcze na miejscu, więc jestem obecnie testuje ze zmodyfikowanym/etc/hosts:

54.200.126.130 www.mydomain.net 
54.200.126.130 mydomain.net 

sslscan nie zwraca żadnych ważnych szyfrów. Wszystkie są wymienione jako "Odrzucone".

Test 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: 

przejście na samopodpisanego cert generowanego z keytool działa dobrze (inne niż obowiązkowe ostrzeżenia przeglądarki). Wydaje się, że problem musi dotyczyć certyfikatów i/lub magazynu kluczy, ale nie jestem pewien, na czym polega problem.

+0

Dzięki! Co pomogło mi bardziej niż cokolwiek innego w tym poście, uświadomiło mi, że muszę otworzyć ruch na portach 80 i 443 (grupy bezpieczeństwa EC2), a także zmodyfikować iptables. – brhlavinka

Odpowiedz

3

Tomat zakłada alias magazynu kluczy z „kocur”, chyba że podasz atrybut keyAlias na Connector. Wystarczy dodać keyAlias=mydomain lub zmień swój pseudonim na „Tomcat” z keytool.

+1

z tomcat docs na keyAlias: "Jeśli nie zostanie określony, zostanie użyty pierwszy klucz odczytany w magazynie kluczy." – ax123man

+0

i tak dał ci kredyt, ponieważ minąłeś pierwszą przeszkodę. Życzenie SO może sobie z tym poradzić lepiej. – ax123man

+0

Dokumentacja może powiedzieć, ale nie jest to moim doświadczeniem, że faktycznie działa w ten sposób. – EJP

1

Tomcat docs powiedzieć o keyAlias: „Jeśli nie określony zostanie pierwszy klucz odczytany w magazynie kluczy. ", ale jest to dobry chwyt. Jednak to nie rozwiązało wszystkich moich problemów. Skontaktowałem się z GeoTrust i zalecili pobranie certyfikatu PKCS # 7, który zadziałał. Dziwne, biorąc pod uwagę, że tomcat docs mówi: "Tomcat działa obecnie tylko w magazynach formatu JKS, PKCS11 lub PKCS12". W końcu to były dwie rozmowy wsparcia z CA, stos przepełnienia stosu z nagrodami, godziny otwarcia i testowanie keytool. Wnioski: wygląda na to, że urzędy certyfikacji, biorąc pod uwagę, że otrzymują wywołania wsparcia, mają najlepszą dokumentację (nie tomcat).

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