Ответ 1
Эта ошибка означает, что ваша виртуальная машина Java использует политику, которая разрешает только ограниченные размеры ключей криптографии из-за законов США об экспорте.
Java 9 и выше
Файлы политики неограниченной юрисдикции включены в состав Java 9 и используются по умолчанию (см. Обновления безопасности в Руководстве по миграции на Java 9).
Если вы получите эту ошибку с Java 9, это может означать, что конфигурация политики была изменена на более ограничительную (limited
), см. Инструкции из руководства по миграции:
Файл политики юрисдикции JCE по умолчанию не ограничен
Если вашему приложению ранее требовались файлы политики неограниченной силы расширения криптографии Java (JCE), вам больше не нужно загружать или устанавливать их. Они включены в JDK и активированы по умолчанию.
Если ваша страна или использование требует более строгой политики, файлы криптографической политики с ограниченным доступом Java все еще доступны.
Если у вас есть требования, которые не соответствуют ни одному из файлов политики, предоставленных по умолчанию, вы можете настроить эти файлы политики в соответствии со своими потребностями.
См.
crypto.policy
безопасности<java-home>/conf/security/java.security
файле<java-home>/conf/security/java.security
или Конфигурация криптографической<java-home>/conf/security/java.security
в платформе Java, Standard Edition Security Developer Guide.
Java 8 и ранее
Java 8 обновление 161 и выше
Начиная с Java 8 Update 161, Java 8 по умолчанию использует Политику неограниченной юрисдикции. Если вы получите эту ошибку, это может означать, что конфигурация была изменена на limited
. См. Инструкции в следующем разделе по Java 8 Update 151 или в предыдущем разделе по Java 9, чтобы изменить его обратно на unlimited
.
Java 8 Обновление 151 и выше
Начиная с Java 8 Update 151, политика неограниченной юрисдикции включена в Java 8, но по умолчанию не используется. Чтобы включить его, вам нужно отредактировать файл java.security
в <java_home>/jre/lib/security
(для JDK) или <java_home>/lib/security
(для JRE). Раскомментируйте (или включите) строку
crypto.policy=unlimited
Обязательно отредактируйте файл, используя редактор, запущенный от имени администратора.
Изменение политики вступает в силу только после перезапуска JVM (это особенно важно для длительных процессов сервера, таких как Tomcat).
Для обеспечения обратной совместимости установка файлов политики, как описано в следующем разделе, также будет работать.
До Java 8 Обновление 151
Для Java 8 Update 144 и более ранних версий вам необходимо установить файлы политики неограниченной юрисдикции расширения криптографии Java (JCE) (доступны в Oracle).
Чтобы установить эти файлы (из файла README.txt
в загрузке):
Загрузите файлы политики JCE неограниченной силы.
Распакуйте и распакуйте загруженный файл.
Это создаст подкаталог с именем jce. Этот каталог содержит следующие файлы:
README.txt This file local_policy.jar Unlimited strength local policy file US_export_policy.jar Unlimited strength US export policy file
Установите файлы JAR политики неограниченной силы.
Если позднее вы решите вернуться к исходным "сильным", но ограниченным версиям политики, сначала сделайте копию исходных файлов политики JCE (US_export_policy.jar и local_policy.jar). Затем замените файлы строгой политики неограниченными версиями надежности, извлеченными на предыдущем шаге.
Стандартное место для файлов JAR политики юрисдикции JCE:
<java-home>/lib/security [Unix] <java-home>\lib\security [Windows]
Примечание для JDK находится в jre/lib/security.
Новый файл политики вступает в силу только после перезапуска JVM (это особенно важно для длительных процессов сервера, таких как Tomcat).