我想知道无论如何我们可以加密server.ssl.key-store-password值并将其存储在application.properties文件中,而不是以纯文本格式存储。
我找不到任何关于此的文件。对此的任何帮助都非常感谢。
提前致谢。
答案 0 :(得分:0)
Spring允许您加密属性文件,但该加密的密钥需要保存在某处。 This回答建议将它们保存在环境变量中,并指出如果您仍想要加密它们的指南。
答案 1 :(得分:0)
您可以根据需要使用“ jasypt-spring-boot-starter”。您所需要做的就是以下步骤。
从maven中央存储库下载“ jasypt-spring-boot-starter”。
com.github.ulisesbocchio jasypt-spring-boot-starter 。在“ @SpringBootApplication”注释所在的Spring Boot起始文件中,仅包含“ @EnableEncryptableProperties”。这里要注意的一点是,一旦在主启动文件上放置了可加密的属性批注,Jaspyt模块将加载并扫描应用程序的所有属性文件,以查找以“ ENC”开头的任何属性值。
在“ application.properties”文件中,需要添加一些其他配置,如下所示(所有这些都是默认设置,您可以根据需要进行更改):
jasypt.encryptor.password=<Some password for encryption> jasypt.encryptor.algorithm=PBEWITHHMACSHA256ANDAES_128 jasypt.encryptor.key-obtention-iterations=1000 jasypt.encryptor.pool-size=1 jasypt.encryptor.salt-generator-classname=org.jasypt.salt.RandomSaltGenerator jasypt.encryptor.iv-generator-classname=org.jasypt.iv.RandomIvGenerator jasypt.encryptor.string-output-type=base64
完成上述步骤后,现在您可以将加密的属性值放在ENC()下。 Jasypt将扫描ENC()中包含的值,并尝试解密该值。
例如 spring.datasource.password = ENC(tHe0atcRsE + uOTxt2GmFYPXNHREch9R / 12qD082gw7vv6bby5Rk)