Spring Cloud Config 加密和解密
来源:互联网 发布:网络维护费用明细 编辑:程序博客网 时间:2024/05/18 03:29
重要 先决条件:要使用加密和解密功能,您需要在JVM中安装全面的JCE(默认情况下不存在)。您可以从Oracle下载“Java加密扩展(JCE)无限强度管理策略文件”,并按照安装说明(实际上将JRE lib / security目录中的2个策略文件替换为您下载的文件)。
如果远程属性源包含加密内容(以{cipher}
开头的值),则在通过HTTP发送到客户端之前,它们将被解密。这种设置的主要优点是,当它们“静止”时,属性值不必是纯文本(例如在git仓库中)。如果值无法解密,则从属性源中删除该值,并添加具有相同键的附加属性,但以“无效”作为前缀。和“不适用”的值(通常为“<n / a>”)。这主要是为了防止密码被用作密码并意外泄漏。
如果要为config客户端应用程序设置远程配置存储库,可能会包含一个application.yml
,例如:
spring: datasource: username: dbuser password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ'
.properties文件中的加密值不能用引号括起来,否则不会解密该值:
spring.datasource.username: dbuserspring.datasource.password: {cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ
您可以安全地将此纯文本推送到共享git存储库,并且保密密码。
服务器还暴露了/encrypt
和/decrypt
端点(假设这些端点将被保护,并且只能由授权代理访问)。如果您正在编辑远程配置文件,可以使用Config Server通过POST到/encrypt
端点来加密值,例如
$ curl localhost:8888/encrypt -d mysecret682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
逆向操作也可通过/decrypt
获得(如果服务器配置了对称密钥或全密钥对):
注意 如果要加密的值具有需要进行URL编码的字符,则应使用--data-urlencode
选项curl
来确保它们已正确编码。
$ curl localhost:8888/decrypt -d 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bdamysecret
小费 如果您使用curl进行测试,则使用--data-urlencode
(而不是-d
)或设置显式Content-Type: text/plain
,以确保在有特殊字符时正确地对数据进行编码('+'特别是棘手)。
将加密的值添加到{cipher}
前缀,然后再将其放入YAML或属性文件中,然后再提交并将其推送到远程可能不安全的存储区。
/encrypt
和/decrypt
端点也都接受/*/{name}/{profiles}
形式的路径,当客户端调用到主环境资源时,可以用于每个应用程序(名称)和配置文件控制密码。
注意 为了以这种细微的方式控制密码,您还必须提供一种TextEncryptorLocator
类型的@Bean
,可以为每个名称和配置文件创建不同的加密器。默认提供的不会这样做(所有加密使用相同的密钥)。
spring
命令行客户端(安装了Spring Cloud CLI扩展)也可以用于加密和解密,例如
$ spring encrypt mysecret --key foo682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda$ spring decrypt --key foo 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bdamysecret
要在文件中使用密钥(例如用于加密的RSA公钥),使用“@”键入键值,并提供文件路径,例如
$ spring encrypt mysecret --key @${HOME}/.ssh/id_rsa.pubAQAjPgt3eFZQXwt8tsHAVv/QHiY5sI2dRcR+...
关键参数是强制性的(尽管有一个--
前缀)。源码来源
- Spring Cloud Config 加密和解密
- spring cloud config非对称加密不能自动解密
- Spring Cloud Config服务端配置细节(二)之加密解密
- Spring cloud config 配置文件加密
- Spring Cloud Config配置文件加解密
- spring cloud:spring cloud config
- Web.Config配置节加密和解密
- web.config的加密和解密
- asp.net web.config加密和解密
- SpringCloud Config 加密和解密 (对称)
- spring cloud config加密后‘=’号消失,‘+’变为空格
- spring-cloud-config 非对称加密 keystore 文件加载异常
- 加密,解密Web.Config
- .config文件加密解密
- web.config加密解密
- web.config加密解密
- 加密,解密Web.Config
- 开始Spring Cloud Config
- Spring事务处理
- 每天一个linux命令(10):cat 命令
- 009-UE4中蓝图读取CSV数据表数据
- 其他题目---蓄水池算法
- 失败记录(一)
- Spring Cloud Config 加密和解密
- 如何验证接口响应json字段值不为空
- 这是史上最全的云栖大会珍贵花絮,看完倍感骄傲!
- Android热更新技术的研究与实现(一)
- 告诉你真实的Common.Lisp的宏
- mysql的sql语句练习
- Android GUI系统
- Iaas、 paas 、saas 云计算的三种服务模式
- Android源代码目录结构