2012-03-17 41 views
13

Tôi muốn biết liệu Apache Tomcat có hỗ trợ giao thức TLS v1.2 không. Tôi không tìm thấy bất kỳ tài liệu nào về điều này! Cảm ơn!Tomcat có hỗ trợ TLS v1.2 không?

+0

Tomcat hoàn toàn không hỗ trợ TLS. Nó là một trong hai Java (thông qua JSSE) hoặc OpenSSL hỗ trợ nó. Phiên bản TLS nào họ hỗ trợ tùy thuộc vào phiên bản nào của họ. Câu hỏi của bạn không đúng. – EJP

Trả lời

11

Phiên bản TLS 1.2 được hỗ trợ bởi phiên bản Oracle JDK 7, trong triển khai JSSE. Vì Tomcat sử dụng JSSE làm thư viện SSL cơ bản, nên nó được hỗ trợ từ phiên bản JDK 1.7 trở đi. Đồng thời kiểm tra các bộ mã hóa SSL đã bật của bạn trong Tomcat.

Nếu bạn đang sử dụng Apache làm proxy, vui lòng kiểm tra tài liệu Apache và tài liệu OpenSSL cơ bản.

Một số liên kết:

http://docs.oracle.com/javase/7/docs/technotes/guides/security/enhancements-7.html (Java SE 7 Security Enhancements)

http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html

http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

+0

Cảm ơn bạn rất nhiều! Cuối cùng tôi đã có TLS v1.2 trên Tomcat bằng cách sử dụng cấu hình JSSE. – observer

+1

bạn có thể vui lòng cho tôi biết tất cả những gì bạn đã thay đổi cho điều đó, tôi đã thử chỉ định sslProtocol = "TLSv1.1" trong trình kết nối nhưng điều đó không hoạt động. – Ashish

2

Tôi cũng đã tìm cách để nâng cấp sslProtocol để TLSv1.1 và như đã đề cập ở dưới đây các liên kết trên Java6 và Java7

Java6 http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html Java7 http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html

Các SSLContext được hỗ trợ trong Java6 SSL, TLSv1 và trong Java7 SSL, TLSv1, TLSv1.1 và TLSv1.2 được hỗ trợ.

Vì vậy, để bật TLSv1.1 hoặc TLSv1.2 trong tomcat, chỉ cần nâng cấp lên Java7 và thay đổi sslProtocol trong Trình kết nối trong tệp server.xml của tomcat.

8

Như đã đề cập bởi những người khác, Tomcat hỗ trợ TLSv1.2 thông qua JSSE trong JDK 7+.

Tomcat KHÔNG hỗ trợ TLSv1.1 hoặc TLSv1.2 khi được sử dụng với Tomcat Native (APR). Xem https://issues.apache.org/bugzilla/show_bug.cgi?id=53952.

Cập nhật: có vẻ như TLSv1.2 cuối cùng sẽ được hỗ trợ trong Tomcat Native 1.1.32 và Tomcat 8.0.15/7.0.57.

9

Tôi có một trường hợp sử dụng tương tự, để cho phép Tomcat 7 chỉ sử dụng TLSv1.2 nghiêm ngặt, không được quay trở lại giao thức SSL trước đó như TLSv1.1 hoặc SSLv3. Các bước sau sẽ trả lời cách bật Tomcat để hỗ trợ TLSv1.2.

Tôi đang sử dụng: C: \ apache-tomcat-7.0.64-64bit và C: \ Java64 \ jdk1.8.0_60.

Làm theo hướng dẫn sau: https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html. Tomcat tương đối đơn giản để thiết lập hỗ trợ SSL.

Từ nhiều tài liệu tham khảo tôi đã thử nghiệm nhiều kết hợp, cuối cùng tôi đã tìm thấy 1 trong đó sẽ thực thi Tomcat 7 chỉ chấp nhận TLSv1.2. 2 nơi cần thiết để liên lạc:

1) Trong C: \ apache-tomcat-7.0.64-64bit \ conf \ server.xml

<Connector port="8443" 
protocol="org.apache.coyote.http11.Http11Protocol" 
maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
keystoreFile="ssl/.keystore" keystorePass="changeit" 
clientAuth="false" sslProtocol="SSL" sslEnabledProtocols="TLSv1.2" /> 

nơi

keystoreFile = địa phương tin tưởng tự ký lưu trữ

org.apache.coyote.http11.Http11Protocol = Triển khai BSS JSSE.

Chúng tôi không sử dụng org.apache.coyote.http11.Http11AprProtocol, vì nó được cung cấp bởi openssl. Các openssl cơ bản sẽ giảm trở lại để hỗ trợ các giao thức SSL trước đó.

2) Khi khởi động Tomcat, hãy bật các tham số môi trường sau.

set JAVA_HOME=C:\Java64\jdk1.8.0_60 
set PATH=%PATH%;C:\Java64\jdk1.8.0_60\bin 
set CATALINA_HOME=C:\apache-tomcat-7.0.64-64bit 
set JAVA_OPTS=-Djdk.tls.client.protocols="TLSv1.2" -Dsun.security.ssl.allowUnsafeRenegotiation=false -Dhttps.protocols="TLSv1.2" 

Hạn chế JAVA_OPTS là bắt buộc, nếu không Tomcat (do Java8 cung cấp) sẽ quay trở lại để hỗ trợ giao thức SSL trước đó.

Khởi động Tomcat C: \ apache-tomcat-7.0.64-64bit \ bin \ startup.bat

Chúng ta có thể thấy JAVA_OPTS xuất hiện trong Tomcat log khởi động.

Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Djdk.tls.client.protocols=TLSv1.2 
Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dsun.security.ssl.allowUnsafeRenegotiation=false 
Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dhttps.protocols=TLSv1.2 

Sau đó, chúng tôi có thể sử dụng lệnh openssl để xác minh thiết lập của chúng tôi. Đầu tiên kết nối localhost: 8443 với giao thức TLSv1.1. Tomcat từ chối trả lời bằng chứng chỉ Máy chủ.

C:\OpenSSL-Win32\bin>openssl s_client -connect localhost:8443 -tls1_1 
Loading 'screen' into random state - done 
CONNECTED(000001C0) 
5372:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:.\ssl\s3_pkt.c:362: 
--- 
no peer certificate available 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 5 bytes and written 0 bytes 

Connect localhost: 8443 với giao thức TLSv1.2, Tomcat trả lời ServerHello với giấy chứng nhận:

C:\OpenSSL-Win32\bin>openssl s_client -connect localhost:8443 -tls1_2 
Loading 'screen' into random state - done 
CONNECTED(000001C0) 
depth=1 C = US, ST = Washington, L = Seattle, O = getaCert - www.getacert.com 
verify error:num=19:self signed certificate in certificate chain 
--- 
Certificate chain 
0 s:/C=SG/ST=SG/L=Singapore/O=Xxxx/OU=Development/CN=Myself 
    i:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com 
1 s:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com 
    i:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com 
--- 
Server certificate 
-----BEGIN CERTIFICATE----- 
(ignored) 
-----END CERTIFICATE----- 
subject=/C=SG/ST=SG/L=Singapore/O=Xxxx/OU=Development/CN=Myself 
issuer=/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com 
--- 
No client certificate CA names sent 
Peer signing digest: SHA512 
Server Temp Key: ECDH, P-256, 256 bits 
--- 
SSL handshake has read 2367 bytes and written 443 bytes 

Điều này chứng tỏ rằng Tomcat nay đáp ứng đúng yêu cầu TLSv1.2 chỉ.

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