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?
Trả lời
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)
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.
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.
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ỉ.
- 1. Golang TLS có hỗ trợ IE8 không?
- 2. Có thể bật TLS v1.2 trong Ruby không? Nếu vậy, làm thế nào?
- 3. Hỗ trợ phiên Without Cookies trong Tomcat
- 4. Sự cố trong tomcat 7.0 để cấu hình tomcat hỗ trợ ssl
- 5. Hỗ trợ Mã VS2010 có hỗ trợ nUnit không?
- 6. DART có hỗ trợ các kết nối SSL/TLS của khách hàng chưa?
- 7. Các đối số dòng lệnh Curl SMTP để hỗ trợ GMail TLS/STARTTLS và SSL
- 8. Sự kiện bắt tay TLS trong Tomcat, có điều gì giống như vậy không?
- 9. Weblogic có hỗ trợ CDI Beans không?
- 10. iPhone có hỗ trợ XML-RPC không?
- 11. Mono có hỗ trợ XAML không?
- 12. GCC có hỗ trợ lâu dài không?
- 13. VC++ có hỗ trợ _mm_malloc không?
- 14. AutoMapper có hỗ trợ LINQ không?
- 15. Arduino có hỗ trợ luồng không?
- 16. IE10 có hỗ trợ FormData() không?
- 17. TypeScript có hỗ trợ TouchEvent không?
- 18. S3 có hỗ trợ HTTP pipelining không?
- 19. PowerShell có hỗ trợ OOP không?
- 20. GWT có hỗ trợ php không?
- 21. Có định nghĩa hỗ trợ tryhaskell.org không?
- 22. Cassandra có hỗ trợ sharding không?
- 23. MemoryCache có hỗ trợ vùng không?
- 24. DS.FixtureAdapter có hỗ trợ sideload không?
- 25. CMake có hỗ trợ Python3 không?
- 26. PhantomJS có hỗ trợ cookie không?
- 27. PyCharm có hỗ trợ Jinja2 không?
- 28. Wcf basicHttpBinding có hỗ trợ PerSession không?
- 29. PySide có hỗ trợ Python 3 không?
- 30. Qemu/kvm có hỗ trợ ovf không?
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