2015-04-24 38 views
8

Trong Mã java của tôi đang tạo ra một thể hiện của Context SSL sử dụng lệnhSSLContext.getInstance ("TLS") có hỗ trợ TLS v1.1 và TLS v1.2 không?

SSLContext ctx = SSLContext.getInstance("TLS"); 

Nhưng trong máy chủ tomcat của tôi đang thiết TLSv1.2 và tôi đang nhận được lỗi bắt tay.

Cách chúng tôi có thể hỗ trợ tất cả các giao thức TLS bằng phương pháp này như trong cpp, chúng tôi có phương thức khách hàng SSLV23 sẽ hỗ trợ tất cả các giao thức.

+1

Những phiên bản của Java để bạn sử dụng? –

+4

SSLContext ctx = SSLContext.getInstance ("TLSv1.2"); suports tất cả các giao thức :) – mahan07

+2

* 'SSLContext ctx = SSLContext.getInstance (" TLS ");' * - nó trở nên tồi tệ hơn. Trên Java 8 trở xuống, bạn cũng nhận được SSLv3. Một báo cáo lỗi đã được đệ trình với Oracle, nhưng nó đã được đóng lại là "sẽ không sửa chữa" vì thiết kế của nó. Ngoài ra, hãy xem [Bộ mã hóa nào để bật SSL Socket?] (Http://stackoverflow.com/a/23365536/608639) – jww

Trả lời

6

Để sử dụng TLSv1.2 cố gắng sử dụng mã dưới đây:

SSLContext sslContext = SSLContext.getInstance("TLSv1.2"); 
sslContext.init(null, null, null);