微服务学习(第四篇)-config配置中心的配置加解密

首先提出疑问:比如在项目中非常隐私的东西也是非常关键的东西,

向数据源的username和password,以及服务器的地址,端口号不能以明文的方式放到git上面去的,需要加密起来。

1、在SpringCloud中有两种加密:对称加密,非对称加密

对称加密是可以解密的:有一个密钥来进行加解密:这就叫做对称加密算法:共用的是一个密钥,密钥就是同一把钥匙。

1.1、对称加密:<参考 SpringCloud官网>>

第一步:安装jce:jdk所提供的一种加密的测略。下载java 8JCE的就可以了。
微服务学习(第四篇)-config配置中心的配置加解密_第1张图片
第二步:把jce中的两个策略文件覆盖到jdk/jre/lib/security目录下面:

如何去实现加减密呢?

主要针对的是cloud-config来进行加解密。

2、重启config:看控制台在这里有加密和解密 encrypt/decrypt相应的路径,访问下:在这里插入图片描述在这里需要加一个对称加密的key,如果把这个key放到了application.yml文件中的话,还会报上面的错误,所以放到了bootstrap.yml文件中,这里是优先级的关系。可能在run运行的时候没有初始化这个配置的key,所以放到了bootstrap文件中。微服务学习(第四篇)-config配置中心的配置加解密_第2张图片然后重新访问下,有这个地址/encrypt,就可以进行加密这就可以进行加解密了。在这里插入图片描述比如对root加密,-d:是写入的密码,如下:微服务学习(第四篇)-config配置中心的配置加解密_第3张图片微服务学习(第四篇)-config配置中心的配置加解密_第4张图片那么如何去使用这个加密后的结果呢?用"{cipher}加密的结果"

在解密的时候用的是cipher它来解密的。‘这就是在有密钥的时候解密成root。然后推送,推送完这里就有对应的刷新,然后看config的后台:微服务学习(第四篇)-config配置中心的配置加解密_第5张图片然后这时用配置中心的客户端去访问下:微服务学习(第四篇)-config配置中心的配置加解密_第6张图片总结:上面的就是对称的加解密的情况:用的是对称加密的算法

3、非对称加密:它有公钥,和私钥之分。非对称怎么实现:加密起来更复杂

其实用的是keytool这个工具来实现的,就是一个非对称加密的工具。参照SpringCloud官网非对称加密:

步骤如下:

3.1、通过keytool工具来进行加密,官网有一些参数,这里主要是用的RSA算法微服务学习(第四篇)-config配置中心的配置加解密_第7张图片3.2、然后生成一个server.jks的文件。微服务学习(第四篇)-config配置中心的配置加解密_第8张图片3.3、把这个文件拷贝到当前的config的resources的根目录的下面。微服务学习(第四篇)-config配置中心的配置加解密_第9张图片接下来配置config:

password,alias,secret不是写死的,在上面的步骤也可以自己去实现。微服务学习(第四篇)-config配置中心的配置加解密_第10张图片3.4、启动下config,用法都一样,也是用/encrypt来加密,然后对root进行加密和解密。微服务学习(第四篇)-config配置中心的配置加解密_第11张图片微服务学习(第四篇)-config配置中心的配置加解密_第12张图片3.5、在git上如何去使用呢,步骤如下:微服务学习(第四篇)-config配置中心的配置加解密_第13张图片然后,用配置中心的客户端cloud-provider去访问:访问也是成功的。微服务学习(第四篇)-config配置中心的配置加解密_第14张图片总结:非对称加密必须有server.jks和相应的配置才可以,用的是RSA算法。要不也不能解密和加密,这个比较安全。而对称加密是使用同一个密钥,才可以加解密。

未完待续,如果觉的哪里不好的话,请各位大佬指出缺点,互相学习。

如果想要代码的话可以加下qq群:797853299。

你可能感兴趣的:(微服务)