一、使用Jdk生成JKS文件
# 使用Jdk自带的keytool生成jks文件
# Window系统下打开命令提示符执行以下命令,默认生成在当前命令提示符路径下
# Linux系统可使用SSH连接,然后执行以下命令,生成文件在当前目录下
keytool -genkeypair -alias config-server -keypass key-secret -storepass password -keystore config-server-dev.jks -keyalg RSA -dname "CN=hc,OU=Unit,O=org,L=City,ST=State,C=US"
其中:
-alias
指定密钥的别名(例如config-server
)。-keyalg
指定密钥算法(这里使用RSA)。-keystore
指定密钥库文件的名称和位置(例如config-server-dev.jks
)。-keypass
是密钥的密码(例如key-secret
)。-storepass
是密钥库的密码(例如password
)。
二、放置密钥库文件
将生成的密钥库文件(例如 config-server-dev.jks
)放置到Spring Cloud Config项目的资源目录(例如 src/main/resources
)下或者 C:/
config-server-dev.jks下
。
三、Spring Cloud Config 配置非对称加密
在Spring Cloud Config的配置文件(通常是 bootstrap.yml
或 bootstrap.properties
)中,配置encrypt.key-store
属性以指向密钥库文件和相关参数。以下是一个YAML配置示例:
encrypt: # 加解密失败时,服务是否正常启动 fail-on-error: false key-store: location: file:/c:/config-server-dev.jks alias: config-server secret: key-secret password: password
四、验证配置并做加密与解密
启动Spring Cloud Config Server后,可以通过访问以下网址验证密钥库配置是否正确,在Window环境下,执行curl必须打开命令提示符执行,使用WindowPowerShell会报错。
1、验证状态:http://localhost:9999/encrypt/status,正确返回{"status":"OK"}
2、加密操作:curl http://localhost:9999/encrypt -d testEncrypt
3、解密操作:curl http://localhost:9999/decrypt -d *****
五、配置中心配置文件使用密文
1、对使用密文的内容使用{cipher}+密文即可。
2、验证配置的密文是否能正常解密