我们必须对通过springboot应用程序创建的其余Web服务使用ssl证书。
现在,我知道使用证书需要密码。因此,我们使用openssl将可用的.pem(无密码)更改为.p12(有密码)。现在我们必须提供这个密码。
问题是引入任何新密码所带来的开销。
由于设计不良,我们无法在我们的application.properties中对此密码进行硬编码。因此,我们正在考虑找出在应用程序中使用密码的其他方式。到目前为止,我可以想到以下选项,请提出哪个更好,为什么
1]而不是在application.properties中设置密码,而是从Java代码进行设置。 (不确定将其设置为环境变量还是系统变量)
2)使用环境变量进行存储。
3)使用任何存储密码的文本文件(由于设计不良,因此不推荐使用)
请指导。
选项3似乎可行,但是可以将文件加密,并在读取文件时在应用程序中放置解密功能,而不是将其存储在纯文本文件中。
对于提供的选项,我会选择选项2,通过使用环境变量,即使在容器化的环境和云中,也将更容易提供和更改密码。
但是您也可以考虑其他选择,例如使用安全的k-v存储器,例如Hashicorp Vault或etcd。
注意,使用Vault或etcd,您也可以动态提供和更改证书,而不是随应用程序一起提供。