为spring-cloud-config服务器配置ssl密钥

问题描述:

我想为spring-cloud-config服务器设置server.ssl.key-store-password,配置将来自GIT(application.yml)。为spring-cloud-config服务器配置ssl密钥

下面是我想在application.yml

server: 
    port: 8760 
    ssl: 
    key-store: path to .jks 
    key-store-password: '{cipher}encrypted password' 
    key-store-type: jks 
    key-password: '{cipher}encrypted password' 

配置虽然自举其配置EncryptionBootstrapConfiguration与TextEncryptor FailsafeTextEncryptor时解密函数被调用EnvironmentDecryptApplicationInitializer从而未能配置服务器的内容。

,我们怎么能有我们的自定义TextEncryptor为EncryptionBootstrapConfiguration,这样我可以使用{}密码启动时的配置,服务器

简称https://*.com/a/32047393/1946403

+0

你有没有想过这个?我现在面临完全相同的问题。 –

我得到这个错误。为了解决这个问题,我不得不将EncryptionConfiguration和TextEncryptor添加到spring.factory文件中。

我有3个文件:

的加密配置:

@Configuration 
public class AESEncryptionConfiguration { 

    @Bean 
    EnvironmentDecryptApplicationInitializer environmentDecryptApplicationInitializer() { 
     return new EnvironmentDecryptApplicationInitializer(new AESTextEncryptor()); 
    } 
} 

的TextEncryptor:

@Component 
public class AESTextEncryptor implements TextEncryptor { 

    @Override 
    public String encrypt(String text) { 
     . 
     . 
     .  
    } 

    @Override 
    public String decrypt(String encryptedText) { 
     . 
     . 
     . 
    } 
} 

然后我不得不引用添加到这两个文件中/src/main/resources/META-INF/spring.factories

org.springframework.cloud.bootstrap.BootstrapConfiguration=com.rs.config.AESEncryptionConfiguration,com.common.encryption.AESTextEncryptor 

通过这样做,我可以创建自定义密码。