Я видел множество примеров отключения TLS-шифров в java, используя jdk.tls.disabledAlgorithms, например:
jdk.tls.disabledAlgorithms=MD2, RSA keySize < 1024, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
Но как я могу отключить шифр только для определенных протоколов, используя jdk.tls.disabledAlgorithms
или аналогичную конфигурацию?
Например, как я могу отключить TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
для TLSv1.1
только?
Кажется, он не поддерживает метод opensssl
, который выглядит так:
TLSv1.1:!TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
Он не вызывает никаких ошибок, но шифр по-прежнему разрешен.
EDIT: Обратите внимание, что меня действительно интересуют только ответы на основе JVM-конфигурации, так как я не контролирую код, который на многих этих серверах, только конфигурации JVM и JVM. Некоторые из них - даже сторонние серверы, поэтому больше вещей на уровне ops, чем что-либо.
EDIT 2: Обратите внимание, что вы можете запускать приложение java и поставлять аргументы, которые изменяют используемые протоколы и шифры, например java -server -Djava.security.properties=./my/custom/java.security -jar myapp.jar
сделают это, но это не позволит вам фильтровать шифры по протоколу, только шифрам или протоколам, из того, что я вижу. Файл будет содержать запись свойства, такую как jdk.tls.disabledAlgorithms