我正在使用spring config服务器和spring安全性。我已追踪连结 https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html 我在C:\ Program Files \ Java \ jdk1.8.0_171 \ jre \ lib \ security文件夹中添加了JCF。 当我发布localhost:8080 / encrypt { “ description”:“加密算法不够强大”, “状态”:“无效” } 这个回应来了。请让我知道这个问题。
答案 0 :(得分:4)
免责声明:我正在运行 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 中进行设置。
答案 1 :(得分:2)
如果得到的是 {“ description”:“加密算法不够强大”,“ status”:“ INVALID”} 。解决方案只是在配置服务器中创建bootstrap.properties文件,并添加crypto.key =“秘密密钥”属性。
答案 2 :(得分:1)
bootstrap.properties
应该在源代码控制下进行跟踪,因此我宁愿将envcrypt.key
值作为操作系统环境变量进行引用。
对于Unix系统,请使用export ENCRYPT_KEY=YOURKEY
将此变量添加到启动文件~/bashrc, ~.profile or ~/.login
中以使其永久
答案 3 :(得分:0)
在spring cloud config server 2中,由于加密算法不够强大,我们得到了针对端点/ encrypt的错误响应。
如果您没有定义crypto.key属性,则会发生此错误。 即使已定义此属性,为避免发生此错误,也应将属性encrypt.key
放在bootstrap.properties
中,而不要放在application.properties
中。
答案 4 :(得分:0)
云配置服务器的 encrypt.key
属性用于解密配置文件中的加密属性,因此在这些配置文件中提供所述密钥显然为时已晚(从安全角度来看也是错误的)。
它需要可用于引导程序上下文,所以是的,如果该配置文件得到适当保护或更好,则可以将它放在 bootstrap.yml
中,但它应该在启动时由受信任的秘密存储系统(如 Vault)提供。
令人遗憾的是,Spring 告诉您错误的方式是发出此错误消息:
{"description":"The encryption algorithm is not strong enough","status":"INVALID"}