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

Java 7 отключает TLS 1.1 и 1.2 для клиентов. От Архитектура Криптографии Java
Провайдеров Oracle Документация
:

хотя 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 системы?

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


вот версия 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)
29
задан jww
14.01.2023 22:32 Количество просмотров материала 3453
Распечатать страницу

6 ответов

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

29
отвечен Tomasz Rebizant 2023-01-16 06:20

вы можете попробовать добавить что-то вроде следующего в сценарий запуска, предполагая 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

15
отвечен cnst 2023-01-16 08:37

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

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

невозможно изменить, если вы не напишете код вроде SSLContext.деыпзьапсе("протоколе TLSv1.2");

8
отвечен shlomicthailand 2023-01-16 10:54

для Java 7 в Mac OS X перейдите к System Preferences > Java, и панель управления Java откроется в отдельном окне. Затем вы переходите к Advanced tab и прокрутите вниз до Advanced Security Settings раздел и проверьте Use TLS 1.1 и Use TLS 1.2 чекбоксы.

enter image description here

6
отвечен Spiff 2023-01-16 13:11

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

вот статья, которая показывает, как использовать групповую политику для развертывания развертывания.файл свойств для всех пользователей: http://www.darkoperator.com/blog/2013/1/12/pushing-security-configuration-for-java-7-update-10-via-gpo.html

к сожалению, нет невозможно включить это для всех программ java на компьютере, который напрямую вызывает java.exe или javaw.исполняемый. Вы должны найти каждую программу, использующую 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.

4
отвечен sjbotha 2023-01-16 15:28

Если вы застряли с Java 7, Вы можете добавить -Djdk.tls.client.protocols=TLSv1.1,TLSv1.2 к аргументам JVM.

обратите внимание, что это имеет несколько предостережений:

несмотря на эти недостатки, я думаю, что это может быть полезно, особенно когда протокол заинтересован в использовании TLS, но не HTTPS, например LDAPS.

[UPDATE] в моей компании, которая запускает свой пул серверов на Ubuntu, мы поняли, что даже обновления 121 OpenJDK 7 было недостаточно для правильной реализации этого. Мы обновили все серверы, чтобы обновить 181, прежде чем он работал.

0
отвечен AbVog 2023-01-16 17:45

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх