本文说明了如何开启和使用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技术栈定制 - JHipster Registry配置信息加密的更多相关文章

  1. JHipster技术栈定制 - JHipster Registry消息总线配置

    本文说明了如何定制化JHipster-Registry,增加消息总线功能. 实现的效果就是修改配置中心的文件后,通过消息队列主动推送给微服务而无需重启微服务,实现配置内容热加载. 1 整体规划 1.1 ...

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

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

  3. JHipster技术栈理解 - UAA原理分析

    本文简要分析了UAA的认证机制和部分源码功能. UAA全称User Account and Authentication. 相关源码都是通过Jhipster生成,包括UAA,Gateway,Ident ...

  4. jhipster技术栈研究

    背景: 公司新的微服务项目都用jhipster脚手架来开发,这篇博客是jhipster里面涉及到技术的汇总目录 一.官方文档中涉及到的技术栈 前端技术栈 Angular / React / Vue R ...

  5. ELK技术栈之-Logstash详解

    ELK技术栈之-Logstash详解   前言 在第九章节中,我们已经安装好Logstash组件了,并且启动实例测试它的数据输入和输出,但是用的是最简单的控制台标准输入和标准输出,那这节我们就来深入的 ...

  6. JHipster技术简介

    本文简单介绍Jhipster是什么,为什么用Jhipster,怎么用Jhipster. WHAT - 技术栈 JHipster是什么 JHipster是一个开发平台,用于生成,开发,部署Spring ...

  7. webpack+babel+react+antd技术栈的基础配置

    webpack+babel+react+antd技术栈的基础配置 前段时间使用webpack+babel+react+antd做了一套后台管理系统,刚开始被一大堆的新知识压的喘不过气来,压力挺大的.还 ...

  8. 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?   什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念 ...

  9. .Net Web开发技术栈

    有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎么学,学什么,怎么系统的学,为此我以我微薄之力总结归纳写了一篇.Net web开发技术栈,以此帮助那些想学,却不知 ...

随机推荐

  1. [Swift]LeetCode904. 水果成篮 | Fruit Into Baskets

    In a row of trees, the i-th tree produces fruit with type tree[i]. You start at any tree of your cho ...

  2. This relative module was not found:

    晚上项目敲完,关机睡觉!  早上醒来-----打开项目,惊呆了 !This relative module was not found: 如图   这个报错,我当时怎么也没看懂!!!   后来经过测试 ...

  3. 当用户管理系统遇上python和mongodb后……

    Overview: 环境 前言 效果图 mongdb安装 代码涉及知识点 关于windows的cmd下执行python文件显示中文乱码的问题 总结 0.环境 操作系统:Windows Python版本 ...

  4. Python内置函数(24)——frozenset

    英文文档: class frozenset([iterable]) Return a new frozenset object, optionally with elements taken from ...

  5. oracle数据库默认是10次尝试失败后锁住用户

    一般数据库默认是10次尝试失败后锁住用户 1.查看FAILED_LOGIN_ATTEMPTS的值select * from dba_profiles: 2.修改为无限次(为安全起见,不建议使用)alt ...

  6. 花10分钟搞懂开源框架吧 - 【NancyFx.Net】

    NancyFx是什么? Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保 ...

  7. Shader 入门笔记(二) CPU和GPU之间的通信,渲染流水线

    渲染流水线 1)应用阶段(CPU处理) 首先,准备好场景数据(摄像机位置,视锥体,模型和光源等) 接着,做粗粒度剔除工作. 最后,设置好每个模型的渲染状态(使用的材质,纹理,shader等) 这一阶段 ...

  8. Python爬虫入门教程 4-100 美空网未登录图片爬取

    美空网未登录图片----简介 上一篇写的时间有点长了,接下来继续把美空网的爬虫写完,这套教程中编写的爬虫在实际的工作中可能并不能给你增加多少有价值的技术点,因为它只是一套入门的教程,老鸟你自动绕过就可 ...

  9. Java基础18:Java序列化与反序列化

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  10. LeetCode专题-Python实现之第28题: Implement strStr()

    导航页-LeetCode专题-Python实现 相关代码已经上传到github:https://github.com/exploitht/leetcode-python 文中代码为了不动官网提供的初始 ...