0

我已经阅读了很多关于证书导入的文章,但我仍然不清楚一些事情。

从 Java 应用程序(在本例中为 JBOSS Web 应用程序)连接到 SSL 站点时,是否需要事先在应用程序服务器上显式安装客户端证书?

我可以手动安装客户端证书,但有一个到期日期。因此,我需要管理我们的应用服务器上所有客户端安装证书的到期日期,并暂停更新每个证书。感觉应该有更好的方法。应用程序不应该自动接受有效的签名证书吗?[在这种情况下,它由 VeriSign 签名]

我们目前在尝试从应用程序访问 https url 而不显式安装证书时遇到异常。API代理库正在吞噬内部异常,所以我不知道细节。

如果证书应该被自动接受,那么这里可能会有不同的问题......

4

1 回答 1

0

可以在不显式导入的情况下使用签名证书吗?

是的,它不需要在使用前安装。事实上,如果您提前知道会发生什么,那么您可以将该信息包含在应用程序中。这具有改善应用程序安全状况的额外好处。

为避免导入证书,请使用自定义X509TrustManager和覆盖checkServerTrusted。在checkServerTrusted中,确保服务器的公钥是预期的(即,固定服务器的证书或公钥);或验证服务器的证书是否有效(即,在有效期内并形成一个到您信任的根的链)。


从 Java 应用程序(在本例中为 JBOSS Web 应用程序)连接到 SSL 站点时,是否需要事先在应用程序服务器上显式安装客户端证书?

在客户端证书的情况下,服务器会通告它所依赖的颁发者来颁发客户端证书。因此,服务器将需要知道颁发客户端证书以验证客户端的信任点。


在这种情况下,它由 VeriSign 签名

这可能真的很糟糕。在这种情况下,您将信任在 Verisign PKI 下签署的所有客户,以及在 Verisign PKI 下签署的所有威瑞信其他客户。

在这种情况下,最好避免使用公共 CA 并运行您自己的 PKI(即,成为您自己的 CA)。在这种情况下,请获取一份Network Security with OpenSSL的副本。本书将向您展示如何使用openssl命令和编程方式完成常规任务。

于 2014-02-13T04:24:53.530 回答