在之前文章基础上添加配置中心服务端的认证及安全,Spring Cloud config ----- 基础使用
项目中使用git来做配置中心的配置仓库,可在application.properties中添加git仓库的用户名和密码,进行身份的认证,配置如下:
spring.cloud.config.server.git.uri=https://github.com/hjbbjh/spring-cloud-learn/ spring.cloud.config.server.git.username=hjbbjh spring.cloud.config.server.git.password=xxxxxx密码在配置文件中为明文,一般会对配置文件中私密信息进行加密处理,配置中心服务端启动后已经有/encrypt和/decrypt相应的加解密原生端点,可通过这两个接口进行自己的信息进行加解密。
可进行如下两种方式进行:
bootstrap.properties中,如下配置,配置自己的加密秘钥
encrypt.key=mykey1111111111111111111启动服务端后,调用/encrypt接口对自己的密码信息进行加密,如下:
得到密文如下:
ba29ca1b0e96756188e24499f16cd4e83c5c00c6cf6f6ea62eea7d167014ebfb就可以在配置文件中使用:
spring.cloud.config.server.git.password={cipher}ba29ca1b0e96756188e24499f16cd4e83c5c00c6cf6f6ea62eea7d167014ebfb注意,要以{cipher}开头,服务才可以对此密码进行解密处理。
负载JDK的JCE,若不覆盖则会报一些入密文size限制问题等。下载响应SDK版本的JCE后,local_policy.jar,US_export_policy.jar拷贝并覆盖到$JAVA_HOME/jre/lib/security。
$ keytool -genkeypair -alias mytestkey -keyalg RSA \ -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" \ -keypass change -keystore server.jks -storepass letmein使用JDK bin下的keytool工具生成自己的keystore:server.jks,keytool使用方法自行百度。
server.jks放到resource目录。
bootstrap中配置如下:
encrypt.key-store.location=classpath:/server.jks encrypt.key-store.password=letmein encrypt.key-store.alias=mytestkey encrypt.key-store.secret=change同上,调用/encrypt接口对自己的相关信息进行加密,得到密文,配置到配置文件中即可({cipher}开头)具体代码参考:github
注:git上代码只是参考,一些密码信息需根据自己的信息去生成,所以拿下来直接跑不一定跑的通。
