【发布时间】:2015-03-28 10:45:13
【问题描述】:
我们有一个 Web 应用程序,它应该与具有辅助工具字符的桌面应用程序交互(例如,无需设置,无需管理员权限)。助手通过 http/https 监听绑定到 localhost 的简单端口。
Web 应用程序使用 SSL 证书。每个客户都有自己的机器来存储他的数据。澄清一下:Web 应用程序在服务器上运行,为一个客户但多人提供服务。
问题是,Web 应用程序无法通过 https(使用图像或 iframe)访问帮助工具。主要问题是,在 localhost 上侦听的本地网络服务器没有签名证书。所以网络浏览器阻止了交互。
有什么办法可以解决这个问题吗?我想,我无法获得 localhost 的证书,因为没有人会签署它。
我知道,我不能为此使用 XMLHttpRequest,但这不是重点。
我们的目标是提供对客户友好的 - 无需安装 - 即可使用 - 解决方案。客户不应进行任何配置。只需下载并启动该工具。我们希望与该工具进行直接通信(例如,没有到 Web 服务器的出站方向)。
有什么解决办法吗?
【问题讨论】:
-
如果应用程序为每个客户在自己的本地机器上运行,那么我想知道你为什么要在 localhost 上使用 https。要嗅探 localhost 上的通信包,攻击者必须能够直接访问机器。发生这种情况时,有更简单的方法可以攻击您的应用程序。因此 https 不会增加您的应用程序的安全性。
-
抱歉,我添加了一个说明。 Web 应用程序在服务器上运行(每个客户)。帮助工具在客户端机器上运行。它应该添加一些 Web 应用程序无法访问的额外功能,因为服务器无法访问客户端计算机。
-
您是否尝试过使用 http 连接到 localhost。我要求它检查您的问题是否确实是 ssl 连接的问题,或者应用程序是否在服务器上而不是客户端上启动了对 localhost 的请求。
-
我正确地与客户交谈(从网络应用程序中)。禁用 https(并切换到 http - web-application AND client)时,一切正常。在客户端为 localhost 安装自签名 CRT 也可以。但这并不能解决“不安装 - 只需工作”的解决方案,因为客户端需要管理员权限才能执行此操作。
标签: ssl https certificate