zoukankan      html  css  js  c++  java
  • JHipster技术栈定制

    本文说明了如何开启和使用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数据库。
  • 相关阅读:
    关于UITapGestureRecognizer的一些问题
    自定义导航栏返回按钮
    mousewheel滚轮事件 浏览器的写法
    Apache日志不记录图片文件设置方法和来源日志的配置
    redis持久化配置
    haproxy实现负载均衡
    Keepalived高可用软件的安装与配置
    Sublime text2用户自定义配置
    判断各版本的最简写法
    Ubuntu防火墙 UFW 设置
  • 原文地址:https://www.cnblogs.com/yorkwu/p/9971120.html
Copyright © 2011-2022 走看看