可以使用签名证书而无需明确导入吗?

时间:2014-01-30 17:14:59

标签: java jboss certificate verisign

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

  

是否可以使用已签名的证书而无需明确导入?

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

要避免导入证书,请使用自定义X509TrustManager并覆盖checkServerTrusted。在checkServerTrusted中,确保预期服务器的公钥(即pin the server's certificate or public key);或验证服务器的证书是否有效(即,是否在有效期内并形成您信任根的链)。


  

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

在客户端证书的情况下,服务器通告其依赖的颁发者颁发客户端证书。因此,服务器需要知道发出客户端证书的信任点,以便对客户端进行身份验证。


  

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

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

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