本文说明了如何开启和使用JHipster-Registry的加解密功能。

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引用的GitLab仓库。所有的配置文件所在地。

2 JhipsterRegistry设置

2.1 对称加密设置

a)修改bootstrap.yml

spring:

cloud:

config:

server:

encrypt:

enabled: true # 开启加解密endpoint

# 设置对称密钥

encrypt:

key: changeit

b)构建并重新启动JhipsterRegistry服务

2.2 非对称加密设置

a) 生成密钥对

$ 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

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) 通过命令行使用加解密功能

$ curl yourdomain:8761/encrypt -d

$ curl yourdomain:8761/decrypt -d

3.2 加密应用的配置信息

a) 加密myClient的数据库密码的明文信息

$ curl yourdomain:8761/encrypt -d my-secret-pw

b) 获得数据库密码的密文信息

{cipher}188e937623c258e8ca180b798………………………a4eb20ff5ff3568cf

c) 保存密文到myClient的application-prod.yml

spring:

datasource:

username: root

password: '{cipher}188e937623c258e8ca180b798………………………a4eb20ff5ff3568cf'

# 注意yml文件中密文要放在单引号中

d) 上传application-prod.yml到GitLab仓库

e) 通过jhipster-registry的管理页面查看配置属性password,验证值是否已经解密:

http://yourdomain:8761/#/config

f) 重启myClient,验证是否正确获取password的值并连接到mysql数据库。

jhipster 配置 mysql_JHipster技术栈定制 - JHipster Registry配置信息加密相关推荐

  1. JHipster技术栈定制 - 基于UAA的微服务之间安全调用

    本文通过代码实例演示如何通过UAA实现微服务之间的安全调用. uaa: 身份认证服务,同时也作为被调用的资源服务.服务端口9999. microservice1: 调用uaa的消费者服务,服务端口80 ...

  2. ELK技术栈-Logstash的详细使用

    本文作者:罗海鹏,叩丁狼高级讲师.原创文章,转载请注明出处. 前言 在第九章节中,我们已经安装好Logstash组件了,并且启动实例测试它的数据输入和输出,但是用的是最简单的控制台标准输入和标准输出, ...

  3. jhipster 配置 mysql_JHipster 基础使用

    认识JHipster JHipster又称Java Hipster,是一个Java代码脚手架,hipster 的意思是时髦的 意思是最时髦的Java解决方案 他的主要核心是Spring Boot,还有 ...

  4. 微服务2.0技术栈选型手册,值得架构师借鉴

    一.前言 2014年可以认为是微服务1.0的元年,当年有几个标志性事件,一是Martin Fowler在其博客上发表了"Microservices"一文,正式提出微服务架构风格:二 ...

  5. 各大公司容器云的技术栈对比

    郑昀编著于2015/10/20 目前来看,几家历史包袱较重的公司都选择不让上层应用感知到底层是 VM 还是容器,所以都改了 docker 内核,如360.点评.汽车之家.最后附上我们的容器私有云技术栈 ...

  6. 微服务项目后台技术栈

    微服务项目后台相关技术整理 主要技术 ORM框架-Mybatis Plus Mybatis Plus核心功能 MyBatis Plus与SpringBoot集成 MyBatis Plus集成Sprin ...

  7. 微服务 2.0 技术栈选型手册

    点击上方"涛哥聊Python",选择"星标"公众号 重磅干货,第一时间送达 作者:杨波  整理:Java知音 来源:http://t.cn/R14nyRW 一. ...

  8. 2019年9月技术栈情况汇总

    java初级程序员一枚,回顾技术掌握情况,记录成长蜕变过程. 2019年9月技术栈情况汇总 基础概况 具体应用技能 一.掌握javaEE开发常用类库,组件,框架,中间件等使用. 1.基础 2.数据库 ...

  9. 各大公司docker容器云的技术栈对比

    目前来看,几家历史包袱较重的公司都选择不让上层应用感知到底层是 VM 还是容器,所以都改了 docker 内核,如360.点评.汽车之家.最后附上窝窝团商城的容器私有云技术栈以及系统截图. [国内专业 ...

最新文章

  1. Snow White,摘自iOS应用Snow White and more stories
  2. python公历转农历_Python如何实现阳历转阴历的方法分享
  3. 错误管道反应:Paul Szymkowiak和上下文驱动的思想家如何交谈
  4. 分析mrp主要应用范围_华珀聚脲丨聚脲的主要应用范围
  5. 后端:SpringBoot 的@Value注解,高级特性,非常实用!!
  6. 蓝桥杯(java)基础练习 龟兔赛跑
  7. python处理json文件_python处理json文件
  8. bean转换 传类型_java开发中DTO、VO、PO之间的转换你应该这么操作
  9. Joining Byte Blocks(哈希+带花树)
  10. 数据库的四大事务特性
  11. 【ArcGIS|空间分析|网络分析】0 网络分析总结
  12. android获取root修改根目录,代码中获取root权限并随意修改根目录文件
  13. 【Linux】sed命令用法详解
  14. 业余无线电通信_业余电台操作证书查询方式
  15. 制作一清理系统垃圾bat文件
  16. 建筑业减碳绝非一招鲜 专家建议加强改造农村建筑
  17. 阿里云acp证书有用吗?阿里云acp证书考试内容有哪些?
  18. 计算机开不了机怎么用u盘解决,电脑开不了机怎么重装系统实测操作
  19. [Pytorch]将自己的数据集载入dataloader
  20. AD637原理图PCB电路设计,使用经验和建议——【电路模块经验10】

热门文章

  1. Python混淆矩阵可视化:plt.colorbar函数自定义颜色条的数值标签、配置不同情况下颜色条的数值范围以及数据类型(整型、浮点型)
  2. pandas计算滑动窗口中的中位数实战(Rolling Median of a Pandas Column):计算单数据列滑动窗口中的中位数、计算多数据列滑动窗口中的中位数
  3. R语言dplyr包使用arrange函数、group_by函数、mutate函数生成分组数据的排名(rank)实战(Rank Variable by Group):升序排名、降序排名以及相同排名的处理
  4. Python使用matplotlib可视化绘制并导出可视化结果图表到PDF文件中
  5. 机器学习特征筛选:互信息法(mutual information)
  6. cufflinks基于dataframe数据自定义绘图基于df.iplot功能
  7. 参数化模型(parametric model)和非参数化模型non-parametric model)的区别?哪些模型是参数化模型,哪些模型是非参数化模型?
  8. python列表(list)中出现次数最多的元素使用collection包的Counter方法
  9. 白化(whitening)是什么?白化(whitening)与PCA(principle component analysis)的区别是什么?
  10. 影像组学视频学习笔记(25)-查看准确度、灵敏度、特异度及混淆矩阵、Li‘s have a solution and plan.