【发布时间】:2011-05-17 22:09:24
【问题描述】:
所以,这就是我要拍摄的场景。
我有一个应用服务器。该应用程序服务器上有一个受密码保护的密钥库文件。在密钥库文件中是一个私钥,我必须以编程方式从已部署的 war 文件中获得访问权限。
我不想在我的代码中存储密码。
war 文件构建在单独的开发人员机器上。在构建时,会提供开发者私钥,用于对 war 文件进行签名。
所述开发者的公共证书已被导入到应用服务器的密钥库可信证书中。
在代码中,我希望能够加载密钥库并检索私钥,而无需提供密钥的密码。我希望通过受信任的证书签名的代码足以进行身份验证以成功检索密钥。
如果恶意用户获得对应用程序服务器的访问权限,他们将无法修改签名代码,因为这会破坏签名。他们也无法部署自己的代码,因为他们没有受信任的私钥。最后,他们无法将自己的证书作为可信证书导入密钥库,因为他们没有密钥库密码。
这可能吗?如果没有,那为什么不呢?
【问题讨论】:
-
我没有收到您的问题,但这似乎与此有关:link 抱歉,如果我在这里错了。
-
我从您的 cmets 收集到的另一个解决方案是将 JNDI 与您的应用服务器一起使用。因此,您不必在代码中保存密码。