本文說明了如何開啓和使用JHipster-Registry的加解密功能。mysql
名詞 | 說明 | 備註 |
---|---|---|
對稱加密 | 最快速、最簡單的一種加密方式,加密(encryption)與解密(decryption)用的是一樣的密鑰(secret key)。 | 直接在bootstrap.yml文件中設置好key |
非對稱加密 | 非對稱加密使用了一對密鑰,公鑰(public key)和私鑰(private key)。私鑰只能由一方安全保管,不能外泄,而公鑰則能夠發給任何請求它的人。 | 須要經過keytool工具生成密鑰對,並放置在Jhipster-Registry的類路徑下。 |
組件名 | 說明 | 版本 |
---|---|---|
Jhipster-Registry | 基於eureka和spring cloud config的基礎服務。 | v3.2.4 |
myClient | 一個客戶端服務,用於測試加解密效果。 | 1.0 |
GitLab配置庫 | Jhipster-Registry引用的GitLab倉庫。全部的配置文件所在地。 |
spring: cloud: config: server: encrypt: enabled: true # 開啓加解密endpoint # 設置對稱密鑰 encrypt: key: changeit
$ 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
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,和生成密鑰時的參數值保持一致
http://yourdomain:8761/#/encryption
git
$ curl yourdomain:8761/encrypt -d <要加密的明文> $ curl yourdomain:8761/decrypt -d <想要解密的密文>
$ curl yourdomain:8761/encrypt -d my-secret-pw
{cipher}188e937623c258e8ca180b798………………………a4eb20ff5ff3568cf
spring: datasource: username: root password: '{cipher}188e937623c258e8ca180b798………………………a4eb20ff5ff3568cf' # 注意yml文件中密文要放在單引號中
http://yourdomain:8761/#/config
spring