2014-04-02 27 views
7

Tôi đang cố gắng nhận chứng chỉ CA/SSL hoạt động trên phiên bản AWS EC2 với Ubuntu và Tomcat 7.0.52. Trình duyệt không thể kết nối. Dưới đây là các bước tôi đã đi qua:Cài đặt SSL trên máy chủ 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 

nộp csr để ssls.com/Geotrust, và nhận lại: bundle.crt www.mydomain.net.crt

Certs nhập khẩu vào keystore:

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

tiếp theo, cập nhật $ 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" /> 

và khởi động lại tomcat.

dụ

EC2 với nhóm bảo mật được thiết lập để cho phép cổng 80 và 443.

ipables thay đổi được thực để chuyển hướng 80-> 8080 và 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 cho www.mydomain .net chưa có sẵn, vì vậy tôi hiện đang thử nghiệm với một/etc/hosts đã sửa đổi:

54.200.126.130 www.mydomain.net 
54.200.126.130 mydomain.net 

sslscan không trả lại bất kỳ mật mã hợp lệ nào. Tất cả chúng đều được liệt kê là "Bị từ chối".

kiểm tra 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: 

chuyển sang một cert ký tự được tạo ra với keytool hoạt động tốt (trừ các cảnh báo trình duyệt bắt buộc). Vì vậy, có vẻ như vấn đề phải được với certs và/hoặc keystore, nhưng tôi không chắc chắn vấn đề là gì.

+0

Cảm ơn! Điều gì đã giúp tôi nhiều hơn bất cứ điều gì trong bài viết này đã làm cho tôi nhận ra rằng tôi cần thiết để mở lưu lượng truy cập trên cổng 80 & 443 (nhóm bảo mật EC2), và cũng sửa đổi iptables. – brhlavinka

Trả lời

3

Tomat giả định một bí danh keystore của "tomcat" trừ khi bạn chỉ định keyAlias thuộc tính trên Connector. Chỉ cần thêm keyAlias=mydomain, hoặc đổi tên bí danh của bạn để "tomcat" với keytool.

+1

từ tài liệu tomcat trên keyAlias: "Nếu không chỉ định khóa đầu tiên được đọc trong kho khóa sẽ được sử dụng". – ax123man

+0

vẫn cho bạn tín dụng, như bạn đã cho tôi vượt qua rào cản đầu tiên. Muốn SO có thể xử lý tốt hơn. – ax123man

+0

Các tài liệu có thể nói rằng, nhưng nó không phải là kinh nghiệm của tôi rằng nó thực sự hoạt động theo cách đó. – EJP

1

docs Tomcat nói của keyAlias: "Nếu không được đã chỉ định khóa đầu tiên được đọc trong kho khóa sẽ được sử dụng. ", nhưng đó là điểm bắt đầu tốt. Tuy nhiên, nó không giải quyết được tất cả các vấn đề của tôi. Tôi đã liên hệ với GeoTrust và họ khuyên bạn nên tải xuống chứng chỉ PKCS # 7, đã hoạt động. Odd, cho rằng tài liệu tomcat nói "Tomcat hiện chỉ hoạt động trên JKS, PKCS11 hoặc PKCS12 định dạng keystores". Cuối cùng nó là hai cuộc trò chuyện hỗ trợ với CA, ngăn xếp tràn bài đăng với tiền thưởng, giờ mở cửa và kiểm tra keytool. Bài học kinh nghiệm: nó xuất hiện của CA, cho họ nhận được các cuộc gọi hỗ trợ, có tài liệu tốt nhất cho điều này (không phải tomcat).

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

Các vấn đề liên quan