Настройка Java SSL / TLS версии - PullRequest
0 голосов
/ 08 мая 2019

Поскольку в Java 7 по умолчанию используется TLS 1.0, я бы хотел обновить его до TLS1.2 для повышения безопасности [только для https].С сайта оракула (https://www.oracle.com/technetwork/java/javase/documentation/cve-2014-3566-2342133.html), он говорит мне, что я могу просто сделать одно из следующего:

java.lang.System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");

ИЛИ

java -Dhttps.protocols="TLSv1,TLSv1.1,TLSv1.2"

Оба метода работают довольно хорошо.

Но я хотел бы спросить, зачем мне здесь указывать все версии TLS. Чем это отличается от

java -Dhttps.protocols="TLSv1.2"?

Указывает, что указание всех версий TLS позволяет обмениваться данными с разными серверами, использующими разные версии TLS? Кроме того, имеет ли значение здесь порядок? Что, если это

java -Dhttps.protocols="TLSv1.2,TLSv1,TLSv1.1"?

Поведение будет другим?

1 Ответ

2 голосов
/ 08 мая 2019

Ваше предположение верно. Когда вы указываете

java -Dhttps.protocols="TLSv1.2"

вы сможете общаться только с клиентами, которые поддерживают TLSv1.2.

Но когда у вас есть список

java -Dhttps.protocols="TLSv1.2,TLSv1,TLSv1.1"

У вас будет больше шансов общаться с несколькими клиентами, которые поддерживают эти разные версии. Важно знать, что самая сильная версия, поддерживаемая обоими, будет выбрана во время согласования рукопожатия. (поэтому порядок, в котором вы их определили, не важен)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...