Spring Cloud Config—密钥管理

Config Server可以使用对称(共享)密钥或非对称密钥(RSA密钥对)。非对称选择在安全性方面是优越的,但是使用对称密钥往往更方便,因为它只是配置的一个属性值。

要配置对称密钥,您只需要将encrypt.key设置为一个秘密字符串(或使用环境变量ENCRYPT_KEY将其从纯文本配置文件中删除)。

要配置非对称密钥,您可以将密钥设置为PEM编码的文本值(encrypt.key),也可以通过密钥库设置密钥(例如由JDK附带的keytool实用程序创建)。密钥库属性为encrypt.keyStore.*,*等于

location(aResource位置),

password(解锁密钥库)和

alias(以识别商店中使用的密钥)。

使用公钥进行加密,需要私钥进行解密。因此,原则上您只能在服务器中配置公钥,如果您只想进行加密(并准备使用私钥本地解密值)。实际上,您可能不想这样做,因为它围绕所有客户端传播密钥管理流程,而不是将其集中在服务器中。另一方面,如果您的配置服务器真的相对不安全,并且只有少数客户端需要加密的属性,这是一个有用的选项。

创建用于测试的密钥库

要创建一个密钥库进行测试,您可以执行以下操作:

$ keytool -genkeypair -alias mytestkey -keyalg RSA \

  -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" \

  -keypass changeme -keystore server.jks -storepass letmein

将server.jks文件放在类路径(例如)中,然后在您的application.yml中配置服务器:

encrypt:

  keyStore:

    location: classpath:/server.jks

    password: letmein

    alias: mytestkey

    secret: changeme

Spring Cloud Config—密钥管理_第1张图片

源码来源

你可能感兴趣的:(Spring Cloud Config—密钥管理)