Spring Config Server安全加密和解密不起作用

时间:2018-11-01 07:04:40

标签: java spring-boot spring-security cryptography spring-cloud-config

我正在使用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”:“加密算法不够强大”,     “状态”:“无效” } 这个回应来了。请让我知道这个问题。

5 个答案:

答案 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"}