我可以在Java中创建自签名证书吗?这些证书将被Web浏览器自动信任?

时间:2009-08-19 17:05:51

标签: java ssl ssl-certificate self-signed

我使用keytool为我的Java应用程序生成了一个自签名证书。但是,当我在浏览器中访问该网站时,它总是弹出一个警告 - 说这个网站没有证书 - 有没有办法自我签署/医生证书,所以我不会在浏览器吗?服务器和浏览器都位于同一主机上,我使用“http://localhost/”导航到该站点。我不想在浏览器中添加异常,因为我在大型构建服务器场上运行测试,因此在所有构建计算机上为所有浏览器添加异常都是过分的。

4 个答案:

答案 0 :(得分:19)

不,你不能。您不妨问一下“如何为hsbc.com制作假证书?”

有两种方法可以让浏览器接受证书:

  • 从受信任的机构购买域名证书(这意味着证明您拥有该域名的权限),然后将该域名用作测试服务器的名称
  • 将您的签名证书安装到浏览器中,以便您有效地成为该浏览器的受信任机构。

没有触及浏览器,没有其他方法可以做到 - 如果互联网要保持安全,怎么会有?

答案 1 :(得分:4)

您还可以使用OpenSSL或可能的Java工具设置自签名证书颁发机构(CA)。然后,您可以使用该CA签署许多服务器证书。

您仍然需要在访问测试服务器的所有客户端上手动信任自签名CA,但至少您只需要信任一个根CA,而不是一堆单独的自签名服务器证书。

另一种选择是结帐CAcert

答案 2 :(得分:1)

您为localhost或test.textbox.com创建的证书是?如果您为FQDN test.textbox.com创建证书,只要证书已正确签名,您就需要到达服务器以避免出现这些错误。您无法为FQDN生成证书,然后使用IP或别名(localhost)来访问它,而不会被警告事情未正确匹配。或者我误解了你的问题?

答案 3 :(得分:1)

改为申请“localhost”证书。它需要匹配您在URL中的主机名。

由于证书不受信任,您仍会感到困扰,但这是另一个问题。