Не удалось проверить ограничения алгоритма в алгоритме подписи: MD5withRSA - PullRequest
0 голосов
/ 02 ноября 2018

Сегодня я хочу использовать HttpClient для вызова интерфейса Hybris в AEM. Но я получаю сообщение об ошибке «java.security.cert.CertPathValidatorException: проверка ограничений алгоритма не удалась на алгоритме подписи: MD5withRSA».

В этой строке выдается исключение "java.security.cert.CertPathValidatorException: проверка ограничений алгоритма завершилась неудачно для алгоритма подписи: MD5withRSA".

httpClient.executeMethod(request);

Я изменил приведенные ниже свойства, чтобы они опустели в файле java.security (C: \ Program Files \ Java \ jdk1.8.0_191 \ jre \ lib \ security \ java.security), но это не работает.

jdk.certpath.disabledAlgorithms
jdk.tls.disabledAlgorithms
jdk.jar.disabledAlgorithms

MY JDK Version: jdk1.8.0_191

Кто-нибудь знает, как это исправить?

Спасибо, Форрест

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Привет @ dave_thompson_085,

Благодаря вашему повтору. Я исправил эту проблему с помощью следующих шагов.

  1. Я использовал команду "где Java", чтобы проверить, какой JDK я действительно использую.

  2. Я переустановил этот JDK.

  3. Я удалил MD5 из «jdk.certpath.disabledAlgorithms», удалил MD5withRSA из «jdk.tls.disabledAlgorithms»

  4. удалено "C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath;" из пути системных переменных

  5. перезагрузите компьютер, затем эта проблема будет исправлена.

Спасибо, Форрест

0 голосов
/ 02 ноября 2018

В сторону: свойство jdk.jar.disabledAlgorithm не имеет отношения к этой проблеме.

Сделайте уверенным вы действительно изменили файл, как это видно из программы.

  • Современные версии Windows (IIRC начиная с Vista, возможно Seven) не любят, когда файлы под \Program Files и \Program Files (x86) записываются чем-либо, кроме программы установки. По крайней мере, иногда они «виртуализируют» такие записи в другой файл, спрятанный где-то под пользователем %appdata%. Ищите и вы найдете лотов подобных проблем и разочарований.

  • Позвоните на номер Security.getProperty(), чтобы проверить настройки, фактически видимые в вашей программе.

Если вы не можете исправить настройку в стандартном файле, вы можете переопределить ее в другом файле (поместите куда-нибудь удобнее), установив sysprop (не secprop) java.security.properties=filename или вызвав Security.setProperty() в начале вашей программы ( до загрузки классов JSSE / PKIX). См:
Расслабляющий алгоритм SSL ограничивает программно
Java - заблокировать версию TLS в java.security, но разрешить переопределение для каждого приложения через конфигурацию запуска?

Кроме того, JDK не обязательно должен быть в \Program Files*. Я положил его в другой каталог верхнего уровня, и у меня нет этих проблем.

И, конечно, скажите, кто бы ни отвечал за сервер, он сильно отстает от времени: -)

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