前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JHipster技术栈定制 - JHipster Registry 配置信息加密

JHipster技术栈定制 - JHipster Registry 配置信息加密

作者头像
羽客
发布2018-12-13 17:17:27
9460
发布2018-12-13 17:17:27
举报

1 整体规划

1.1 名词说明

名词

说明

备注

对称加密

最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。

直接在bootstrap.yml文件中设置好key

非对称加密

非对称加密使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。

需要通过keytool工具生成密钥对,并放置在Jhipster-Registry的类路径下。

1.2 相关组件

组件名

说明

版本

Jhipster-Registry

基于eureka和spring cloud config的基础服务。

v3.2.4

myClient

一个客户端服务,用于测试加解密效果。

1.0

GitLab配置库

Jhipster-Registry引用的gitlib仓库。所有的配置文件所在地。

2 JhipsterRegistry设置

2.1 对称加密设置

a) 修改bootstrap.yml
代码语言:javascript
复制
spring:
    cloud:
        config:
            server:
                encrypt:
                    enabled: true   # 开启加解密endpoint
 
# 设置对称密钥
encrypt:
    key: changeit
b) 构建并重新启动JhipsterRegistry服务

2.2 非对称加密设置

a) 生成密钥对
代码语言:javascript
复制
$ keytool -genkeypair -alias configkey -keyalg \
  RSA -dname  "C=CN,ST=GD,L=GZ,O=YOURCOMPANY,OU=YOURCOMPANY,CN=registry" \
  -keypass changeit1 -storepass changeit2 -keystore config-server.jks
b) 将config-server.jks放到jhipster-registry的src/main/resources目录下
c) 修改bootstrap.yml
代码语言:javascript
复制
spring:
    cloud:
        config:
            server:
                encrypt:
                    enabled: true     # 开启加解密endpoint

encrypt:
    keyStore:                  # 非对称加密
        location: classpath:/config-server.jks   # jks文件的路径
        password: changeit2                  # storepass,和生成密钥时的参数值保持一致
        alias: configkey                          # alias,和生成密钥时的参数值保持一致
        secret: changeit1                       # keypass,和生成密钥时的参数值保持一致
d) 构建并重新启动JhipsterRegistry服务

3 测试效果

3.1 使用加解密功能

a) 通过UI使用加解密功能

http://yourdomain:8761/#/encryption

b) 通过命令行使用加解密功能
代码语言:javascript
复制
$ curl yourdomain:8761/encrypt -d <要加密的明文>
$ curl yourdomain:8761/decrypt -d <想要解密的密文>

3.2 加密应用的配置信息

a) 加密myClient的数据库密码的明文信息
代码语言:javascript
复制
$ curl yourdomain:8761/encrypt -d my-secret-pw
b) 获得数据库密码的密文信息
代码语言:javascript
复制
{cipher}188e937623c258e8ca180b798………………………a4eb20ff5ff3568cf
c) 保存密文到myClient的application-prod.yml
代码语言:javascript
复制
spring:
    datasource:
        username: root
        password: '{cipher}188e937623c258e8ca180b798………………………a4eb20ff5ff3568cf'   
# 注意yml文件中密文要放在单引号中
d) 上传application-prod.yml到gitlib仓库
e) 通过jhipster-registry的管理页面查看配置属性password,验证值是否已经解密:

http://yourdomain:8761/#/config

f) 重启myClient,验证是否正确获取password的值并连接到mysql数据库。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 整体规划
    • 1.1 名词说明
      • 1.2 相关组件
      • 2 JhipsterRegistry设置
        • 2.1 对称加密设置
          • 2.2 非对称加密设置
          • 3 测试效果
            • 3.1 使用加解密功能
              • 3.2 加密应用的配置信息
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档