以编程方式检索Glassfish的证书?

时间:2011-08-04 17:36:10

标签: java glassfish certificate

我似乎无法找到一个解释,说明如何从Glassfish的密钥库中以编程方式从Glassfish上运行的应用程序中获取证书 - 而不是实际指定密钥库的本地系统路径。

据推测,有一些工具可以从应用程序中访问这些工具来进行有用的工作吗?我的用例如下:我只想抓住容器的密钥库并使用客户端证书对远程服务器进行身份验证。

1 个答案:

答案 0 :(得分:4)

前一段时间我与WebSphere有同样的问题。我们正在部署一个需要通过TLS通过客户端身份验证访问其他应用程序的应用程序。所以我们首先想到的是重用服务器TLS证书。除了指定密钥库资源的路径之外,没有办法做到这一点。我认为WebSphere文档解释与“关注点分离”的方式相似 - SSL / TLS密钥存储区仅用于验证服务器是否与其建立连接 - 而不是用于其他任何操作。

如果您考虑此类“服务器证书”的密钥用法/扩展密钥用法字段和可分辨名称,则该参数非常有效。 DN是服务器主机名(用于主机名验证),扩展密钥用法大多数时间是“服务器身份验证”。

虽然如果证书另外具有“客户端身份验证”扩展密钥用法(在我们的例子中也是如此),您的意图仍然有效。如果确实如此,那么IMO就可以为此目的重新使用证书。

但我在讨论中听到的最好的论点是:生产服务器由不同的人群维护,而不是实际的应用程序开发人员。如果应用程序开发人员想要重用服务器密钥库文件,那么服务器维护人员必须告诉他们密码或至少授予应用程序读取权限以读取包含密钥库密码的文件。两者都是不可接受的安全政策。