5

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

4

4 回答 4

19

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

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

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

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

于 2009-08-19T17:07:12.383 回答
4

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

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

另一种选择是查看CAcert

于 2009-08-19T17:25:46.433 回答
1

您为 localhost 还是为 test.textbox.com 创建的证书?如果您为 FQDN test.textbox.com 创建一个证书,那么只要证书已正确签名,您就需要通过这种方式访问​​服务器以免收到这些错误。您无法为 FQDN 生成证书,然后使用 IP 或别名 (localhost) 访问它,而不会被警告事情不正确匹配。还是我误解了你的问题?

于 2009-08-19T17:11:23.403 回答
1

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

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

于 2009-08-19T22:22:16.507 回答