Включить TLS 1.1 и 1.2 для клиентов на Java 7

Java 7 отключает TLS 1.1 и 1.2 для клиентов. Из архитектуры криптографии Java Документация Oracle Providers :

Хотя SunJSSE в версии Java SE 7 поддерживает TLS 1.1 и TLS 1.2, ни одна из версий не включена по умолчанию для клиентских подключений. Некоторые серверы не обеспечивают правильную совместимость и отказываются разговаривать с клиентами TLS 1.1 или TLS 1.2. Для обеспечения совместимости SunJSSE не включает TLS 1.1 или TLS 1.2 по умолчанию для клиентских подключений.

Я заинтересован в том, чтобы включить протоколы в системной настройке (возможно, через файл конфигурации), а не в решении для Java-приложений.

Как я могу административно включить TLS 1.1 и 1.2 в системе ?

Примечание . Начиная с POODLE, я хотел бы административно отключить систему SSLv3. (Проблемы с SSLv3 предшествуют POODLE, по крайней мере, на 15 лет, но Java / Oracle / Developers не соблюдают основные передовые методы, поэтому пользователям, таким как вы и я, остается очистка от беспорядка).


Вот версия Java:

$ /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/bin/java -version java version "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode) 

Вы можете попробовать добавить к сценарию запуска что-то вроде следующего: предполагается, что Java 1.7:

JAVACMD="$JAVACMD -Ddeployment.security.SSLv2Hello=false -Ddeployment.security.SSLv3=false -Ddeployment.security.TLSv1=false -D\ deployment.security.TLSv1.1=true -Ddeployment.security.TLSv1.2=true"

Некоторые другие предложения: https://blogs.oracle.com/java-platform-group/entry/java_8_will_use_tls

Вы можете просто добавить следующее свойство -Dhttps.protocols=TLSv1.1,TLSv1.2 которое настраивает JVM, чтобы указать, какая версия протокола TLS должна использоваться во время соединений https.

Я только недавно исследовал это, и я хочу добавить – это не сработает для JDK, параметры deployment.properties применимы только к апплетам и другим материалам, работающим в JRE.

Для приложений JDK (сервер, которому необходимо подключиться к LDAP, например), сервер является клиентом, а deploy.security. Не будет работать.

Никоим образом не изменить его, если вы не напишете какой-то код, например SSLContext.getInstance («TLSv1.2»);

Для Java 7 в Mac OS X вы перейдете в System Preferences > Java , а панель управления Java открывается в отдельном окне. Затем перейдите на вкладку « Advanced » и прокрутите страницу до раздела « Advanced Security Settings » и установите флажки « Use TLS 1.1 и « Use TLS 1.2 .

Введите описание изображения здесь

Похоже, что параметры deploy.security. * Работают для Java-апплетов и программ Java Web Start, работающих на рабочем столе. Как упоминают другие, вы можете изменить параметры deploy.properties, чтобы указать это.

Вот статья, в которой показано, как использовать групповую политику для развертывания одного и того же файла deployment.properties для всех пользователей: http://www.darkoperator.com/blog/2013/1/12/push-security-configuration-for- Java-7-обновление-10-через-gpo.html

К сожалению, нет способа включить это для всех java-программ на компьютере, которые непосредственно вызывают java.exe или javaw.exe. Вы должны найти каждую программу, которая использует java, найти файл конфигурации, в котором вы указываете параметры для перехода к java и изменить его.

Для Tomcat нам пришлось передать это, чтобы соединения от Tomcat на других серверах использовали TLS 1.1+: -Dhttps.protocols=TLSv1.1,TLSv1.2 . В Linux это можно сделать, отредактировав bin/catalina.sh или создав bin/setenv.sh .

Я не знаю, что нужно, чтобы Tomcat использовал только TLS 1.2 на стороне сервера. Мы работаем с Apache HTTP.

  • Как узнать, был ли запрос на сервлет выполнен с использованием HTTP или HTTPS?
  • SSLHandshakeException Цепочный якорь для пути сертификации не найден Android HTTPS
  • Проблемы с подключением через HTTPS / SSL через собственный клиент Java
  • Как сообщить `ссылкам` игнорировать истекший SSL-сертификат и продолжить?
  • Использование CERT Tapioca на VM
  • Java SSL: как отключить проверку имени хоста
  • Как создать самозаверяющий сертификат для доменного имени для разработки?
  • Как игнорировать проверку сертификата, когда ssl
  • Как я могу создать хранилище ключей из существующих сертификатов (abc.crt) и файлов abc.key?
  • Как включить SSL 3 в Java
  • Как добавить сертификат SSL в AWS EC2 с помощью новой службы AWS Certificate Manager
  • Давайте будем гением компьютера.