2014-01-30 38 views
0

我读过很多关于证书导入的文章,但我对一些事情还不清楚。可以使用签名证书而不明确导入?

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

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

我们正在尝试从应用程序访问https网址时没有明确安装证书,目前得到一个异常。 API代理库吞咽内部异常,所以我不知道细节。

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

+0

我想是的,你需要更新它们。如果您观察到浏览器的行为,您是否在需要的时候单击“是”来明确地安装它们?如果你不想手动操作,你可以编写脚本。 – kosa

+1

您可以通过使用IO操作读取它们来完成此操作。 –

+0

谢谢。这听起来像我需要去API代理中的内部异常。 – Jeremy

回答

0

能签署的证书,但不导入明确地使用?

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

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


当连接到一个SSL网站从Java应用程序[在这种情况下,一个JBoss Web应用程序],请问客户端证书需要先在应用服务器上明确安装?

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


在这种情况下,它是由VeriSign

这签署可能是非常糟糕的。在这种情况下,您将相信所有在Verisign PKI下签名的客户,以及Verisign的所有其他客户在Verisign PKI下签名。

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

+0

谢谢!我错过了这个更新,并且已经手动安装了这些证书,但我会看看这个参考资料。 – Jeremy