Как заставить java-сервер принимать только tls 1.2 и отклонять tls 1.0 и tls 1.1 соединения

У меня есть веб-служба https, работающая на java 7. Мне нужно внести изменения, чтобы эта служба только принимала соединение tls1.2 и отклоняла ssl3, tls1.0 и tls1.1.

Я добавил следующий параметр java, так что tls1.2 является наивысшим приоритетом.

-Dhttps.protocols=TLSv1.2 

но он также принимает соединения tls1.0 от java-клиентов. если клиент также работает с указанным выше параметром java, соединение равно tls1.2, но если клиент работает без этого параметра, соединения будут tls1.0.

Я немного поиграл с файлом java.security в папке jdk / jre / lib / security.

В настоящее время у меня есть следующие алгоритмы:

 jdk.certpath.disabledAlgorithms= MD2, MD4, MD5, SHA224, DSA, EC keySize < 256, RSA keySize < 2048, SHA1 keysize < 224 jdk.tls.disabledAlgorithms=DSA, DHE, EC keySize < 256, RSA keySize < 2048, SHA1 keysize < 224 

Я использую java 7, обновление 79. Я не склонен к перехвату каждого соединения и проверке версии tls.

Мой сертификат сервера составляет 2048 бит, сгенерированный с MD5 с алгоритмом RSA.

Если список отключенных алгоритмов имеет RSA вместо RSA keySize <2048, я получаю сообщение SSLHandShakeError с сообщением об ошибке: общих комплектов шифров нет.

Моя тестовая программа запускает http-сервер по следующему URL-адресу: http://www.herongyang.com/JDK/HTTPS-HttpsEchoer-Better-HTTPS-Server.html

пожалуйста, помогите, как сделать java принимать только tls 1.2 соединений.

Я нашел решение для этого. Я установил

 jdk.tls.disabledAlgorithms= SSLv2Hello, SSLv3, TLSv1, TLSv1.1 

в файле jre / lib / security / java.security на сервере.

После этого сервер только принимает соединение TLS1.2 и отклоняет более низкие версии протокола безопасности.

Просто небольшое замечание;

В вопросе вы заявили, что вы создали сертификат размера 2048 с MD5. Но в пути cert alg вы отключили MD5, поэтому это нормально не должно работать. Во-вторых, сертификаты сервера, созданные с использованием хеша MD5, запрещены из современных браузеров, таких как Internet Explorer 10 / Edge.

Я хотел бы посоветовать вам сгенерировать сертификат сервера, по крайней мере, с помощью SHA256 или

Я также сделал те же изменения в файле /java/jdk1.7.0_79/jre/lib/security”-java.security, но некоторые из клиентов по-прежнему могут звонить моим службам с помощью протокола SSL.

—- Изменения jdk.tls.disabledAlgorithms = SSL, SSLv2, SSLv3, TLSv1, TLSv1.1, MD5, SSLv3, DSA, RSA keySize <2048

  • Dyld: библиотека не загружена: /usr/lib/libcurl.4.dylib curl Ошибка SSL
  • Импорт PEM в хранилище ключей Java
  • Как легко создать сертификат SSL и настроить его в Apache2 в Mac OS X?
  • Как включить SSL 3 в Java
  • Определение данных сертификата TLS с помощью Microsoft Edge
  • Firefox: это соединение не доверено + За корпоративным брандмауэром
  • как добавить терминологическое имя объекта в ssl certs?
  • jQuery ajax и SSL?
  • Сертификату SSL не доверяют - только на мобильных телефонах
  • Как получить файл .pem из .key и .crt файлов?
  • Подключение к WebSphere MQ в Java с помощью SSL / Keystore
  • Interesting Posts

    Невозможно прокручивать хвост вверх или вниз по серверу

    Почему я не могу заблокировать Facebook, используя / etc / hosts в Mountain Lion (OS X)?

    Портирование приложения Java, использующего AWT и Swing для рисования фильмов на стороне сервера

    Как восстановить сломанную ассоциацию файлов .EXE

    Где android.os.SystemProperties?

    Android – startActivityForResult сразу же запускает onActivityResult

    У меня есть 4 порта Ethernet RJ45, которые были ограничены до 200 КБ в секунду. Как использовать все 4 порта для ускорения моего сетевого подключения?

    Создание оглавления для XWPFDocument с указанием номеров страниц

    Как изменить порядок сортировки по умолчанию в проводнике Windows и диалоговых окнах File

    Экран блокировки Windows 10: нет клавиатуры

    Grep и Sed Equivalent для обработки командной строки XML

    Стоит ли инициализировать размер коллекции List , если размер его разумно известен?

    WOL через Интернет – без настройки маршрутизатора

    Как я могу обнаружить двойной щелчок по определенной ячейке в UITableView?

    Как IPv6 повлияет на повседневных пользователей? (Всемирный день IPv6)

    Давайте будем гением компьютера.