如何将密码传递给Java(春季启动)应用程序

问题描述 投票:0回答:2

我们必须对通过springboot应用程序创建的其余Web服务使用ssl证书。

现在,我知道使用证书需要密码。因此,我们使用openssl将可用的.pem(无密码)更改为.p12(有密码)。现在我们必须提供这个密码。

问题是引入任何新密码所带来的开销。

由于设计不良,我们无法在我们的application.properties中对此密码进行硬编码。因此,我们正在考虑找出在应用程序中使用密码的其他方式。到目前为止,我可以想到以下选项,请提出哪个更好,为什么

1]而不是在application.properties中设置密码,而是从Java代码进行设置。 (不确定将其设置为环境变量还是系统变量)

2)使用环境变量进行存储。

3)使用任何存储密码的文本文件(由于设计不良,因此不推荐使用)

请指导。

java spring-boot ssl password-protection password-encryption
2个回答
0
投票

选项3似乎可行,但是可以将文件加密,并在读取文件时在应用程序中放置解密功能,而不是将其存储在纯文本文件中。


0
投票

对于提供的选项,我会选择选项2,通过使用环境变量,即使在容器化的环境和云中,也将更容易提供和更改密码。

但是您也可以考虑其他选择,例如使用安全的k-v存储器,例如Hashicorp Vaultetcd

注意,使用Vault或etcd,您也可以动态提供和更改证书,而不是随应用程序一起提供。

© www.soinside.com 2019 - 2024. All rights reserved.