Шифрование и дешифрование безопасности сервера Spring config не работает

Я использую сервер конфигурации Spring и безопасность Spring. Я перешел по ссылке https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html Я добавил JCF в папку C: \ Program Files \ Java \ jdk1.8.0_171 \ jre \ lib \ security. Когда я публикую localhost: 8080 / encrypt { "description": "Алгоритм шифрования недостаточно силен", "status": "НЕДЕЙСТВИТЕЛЬНО" } Такой ответ приходит. Пожалуйста, дайте мне знать о проблеме.

Вы точно перешли по ссылке? Если нет, укажите параметры, которые вы использовали.

kelalaka 02.11.2018 12:42
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
9
1
5 959
5

Ответы 5

Отказ от ответственности: я использую org.springframework.cloud:spring-cloud-config-server:2.0.6.RELEASE.

Этого недостаточно, чтобы включить неограниченную криптографическую политику (кстати, по умолчанию она начинается с jdk8.161), но вы также должны предоставить (в случае, если вы хотите использовать симметричную криптографию) свойство encrypt.key.

Вы можете найти его в документации: http://cloud.spring.io/spring-cloud-config/2.0.x/single/spring-cloud-config.html#_key_management

PS: Установите его в пределах bootstrap.properties.

если вы получаете ответ {"description": "Алгоритм шифрования недостаточно надежен", "status": "INVALID"}. решение просто создает файл bootstrap.properties на сервере конфигурации и добавляет свойство encrypt.key = "Secrete Key".

bootstrap.properties предназначены для отслеживания в системе управления версиями, поэтому я бы предпочел ссылаться на значение envcrypt.key как на переменную среды операционной системы.

Для систем unix используйте export ENCRYPT_KEY=YOURKEY

Добавьте эту переменную в один из файлов запуска ~/bashrc, ~.profile or ~/.login, чтобы сделать ее постоянной.

С сервером конфигурации Spring Cloud 2 мы получаем ответ об ошибке для конечной точки / шифрования, поскольку алгоритм шифрования недостаточно силен. Эта ошибка возникает, если у вас не определено свойство encrypt.key. Даже если это определено, чтобы избежать этой ошибки, свойство encrypt.key следует поместить в bootstrap.properties, а не в application.properties.

Свойство encrypt.key облачного сервера конфигурации используется для расшифровки зашифрованных свойств в файлах конфигурации, поэтому явно слишком поздно (и неправильно с точки зрения безопасности) предоставлять указанный ключ в этих файлах конфигурации.

Он должен быть доступен для контекста начальной загрузки, поэтому да, вы можете поместить его в bootstrap.yml, если этот файл конфигурации надлежащим образом защищен или, что еще лучше, он должен быть предоставлен во время запуска надежной системой хранения секретов, такой как Vault.

Жалко, что Spring способ сообщить вам, что вы ошиблись, выдав следующее сообщение об ошибке:

{"description":"The encryption algorithm is not strong enough","status":"INVALID"}

Другие вопросы по теме