spring cloud config 加密出现"status":"NO_KEY"的解决方法

2022-03-09 18:18:27 浏览数 (1)

前言

利用spring cloud config对配置文件字段进行加密的,如果出现

代码语言:javascript复制
{"description":"No key was installed for encryption service","status":"NO_KEY"}

这样的错。造成这种原因通常有三种。

1、未配置JCE 2、未设置key/keystore 3、spring cloud bug

解决方法

1、配置JCE

JDK6的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

JDK7的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

然后解压压缩包,把local_policy.jar和US_export_policy.jar拷贝并覆盖到$JAVA_HOME/jre/lib/security目录下

2、配置key/keystore

配置key

在服务端的配置文件加入

encrypt: key: hello

配置keystore

利用java自带的keytool 生成秘钥

在服务端的配置文件加入

encrypt: keyStore: location: classpath:/hello.keystore # keystroe位置 password: hello # 密钥库的密码 alias: helloKey # 密钥对的别名 secret: hello # 密钥口令

3、spring cloud bug

如果是采用Dalston.SR2、Dalston.SR3版本,则不能进行加密。此时可以降级到

Dalston.SR1版本

加密配置细节

Dalston.SR3版本以后,配置秘钥必须得在bootstrap.yml或者bootstrap.propertiesl文件中配置,而不能在application.yml或者application.propertiesl配置,在application.yml或者application.properties配置没办法生效。如果是采用Dalston.SR1版本都能生效

0 人点赞