2

我有一个在客户端机器上运行的 java 应用程序,它接收来自 Web 应用程序的 ajax 请求。其中一些想要使用该服务的 Web 应用程序仅在 https 下提供。

我的 java 应用程序现在可以很好地接受和处理 SSL 请求,但我必须首先在浏览器中导航到服务器并接受证书。

将“真正的证书”安装为这个监听的 Java 应用程序的一部分的最佳方法是什么https://localhost:my_port

在 Windows 上,似乎我可以让安装程序将自签名证书添加到机器接受列表中。我还考虑过获得经过验证的证书thisApp.myDomain.com,然后更改主机文件以将该地址指向127.0.0.1,但更改主机文件似乎是恶意的,我担心会被防病毒软件接收。

“主”应用程序是一个基于网络的系统。这个基于网络的系统的一些用户希望能够打印到指定计算机上的特殊打印机。Java 应用程序将安装在这些计算机上,然后 Web 应用程序将 ajax 请求发送到与打印机交互的 Java 应用程序。最终用户需要能够使用简单的一键式安装程序来安装此 java 服务。Web 应用程序是从进行打印的机器上的浏览器运行的,因此是 localhost。

如前所述,Web 应用程序需要通过 https 连接到 Web 服务器(当前位于亚马逊)。除了 Chrome 抱怨不安全的内容之外,与 localhost 打印服务器的连接不需要是 https,而 chrome 目前是我们用户使用最广泛的浏览器。

有什么想法或建议吗?

4

2 回答 2

2

如果通过“真实”证书,您的意思是由受信任的 CA 签名的证书,那么我认为答案是您可能不能。我认为受信任的 CA 不会为您签发一份。

我上面链接的答案建议您通过获取 CA 证书来设置自己的 CA。其他选择是 127.0.0.1 的自签名证书,或调整您的 DNS 解析(例如,通过客户端计算机的“主机”文件),以便具有有效证书的某些名称解析为客户端计算机上的环回地址。


顺便说一句 - 关闭证书验证不是要走的路。最好将自签名证书添加到(例如)用户浏览器的受信任证书列表中。


如果我处于您的情况,我想我会更改需要 HTTPS 来处理 127.0.0.1 上的请求的任何内容。请求不需要 HTTPS,或者将 IP 地址更改为客户端自己的 IP 地址。

于 2012-05-29T12:54:36.710 回答
-1

我尝试在客户端机器上安装自我签名证书 - 但失败了。不记得是什么问题了。所以我关闭了客户端代码中的证书验证。

你可以在这里阅读。

于 2012-05-29T12:45:25.080 回答