18910140161

spring-cloud-config非对称加密 keystore文件加载异常

顺晟科技

2021-06-16 10:42:44

325

最近在学习春云,准备在项目中使用。不能简单地把Spring Cloud看成一个框架,而应该看成是一个微服务的整体解决方案。它集成了很多的框架,比如Spring Boot和网飞,很多组件都是开箱即用的。正是因为集成了这么多框架,所以版本不稳定。即使是SR版也有一些问题。即使上一个版本没有问题,这个版本也有问题。

由于配置内容可能涉及到一些敏感信息,我们可以简单地在Spring Cloud Config中使用非对称加密,实现敏感信息的安全存储。但是在使用的过程中,出现了一些奇妙的问题,无论是官方文件,还是一些大神的博文,都没有得到明确的解决。

当然这个问题和我的配置有关,可能很多人都没有遇到过。在这里描述问题。万一有人和我配置一样,有问题,可以帮别人节省一些时间。

1.正确体位

Spring Cloud Config的非对称加密可以使用RSA加密方法,通过JDK的密钥工具产生密钥对,对敏感信息进行加密和解密。

生产密钥对:

keytool-gen keypair-alias my testkey-keyalg RSA-dname ' CN=Web Server,OU=China,O=www.howardliu.cn,L=Beijing,S=Beijing,C=China '-key pass changeme-keystore config-service . jks-store pass letmein

将生成的密钥库文件复制到src/main/resources目录,然后在配置文件bootstrap.yml:

encrypt:

key-store:

location : class path :/config-service . jks

alias: mytestkey

password: letmein

secret: changeme

以下配置被添加到pom.xml:

建设

资源

资源

目录rc/main/resources/directory

过滤规则/过滤

排除

排除**/*。jks/排除

/排除

/resource

资源

目录rc/main/resources/directory

过滤液体/过滤

包含

包括**/*。jks/包括

/包括

/resource

/资源

/build

然后启动应用程序,通过访问http://localhost 33608888/encrypt/status返回{'status':'OK'},表示配置正确。通过这种用法,您可以通过访问两个端点/加密和解密来加密和解密指定的信息。

本项目代码在https://github.com/Howard Liu-cn/spring-learning/tree/master/micro-service/config-service。

2.姿势不对

刚开始学习的时候没有上面那么顺利,遇到了一些问题。

2.1 encrypt.key-store。*由配置位置导致的加密信息不会被解密

开始时,加密。密钥存储。*是在application.yml中配置的,此时,通过访问http://localhost :8888/encrypt/status返回{'status':'OK'}。原本以为配置成功,但是当客户端获得加密信息后,返回的结果并没有解密,而是去掉了{cipher}。

此错误相对容易排除。Spring Cloud的主要配置文件是application.yml和bootstrap.yml,因为Spring Cloud Config的配置信息需要放在客户端的bootstrap.yml中,所以加密. ke

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航