gpt4 book ai didi

c# - 从浏览器访问在本地主机上运行的 SignalR 应用程序

转载 作者:行者123 更新时间:2023-11-30 23:08:33 25 4
gpt4 key购买 nike

我有一个可以从我的网站下载并在用户 PC 上运行的应用程序。这个应用程序没有做任何特别的事情,只是允许网页访问扫描仪。它使用 SignalR 进行通信。基本上,我在 WinForms 应用程序下运行 SignalR 服务器,并有试图通过 http://localhost:8084/signalR 访问它的 javascript 客户端。 .当我使用 HTTP 版本的 Web 应用程序时一切正常,但当我为我的 Web 应用程序使用 HTTPS 时失败:大多数浏览器不允许来自安全页面的不安全连接。因此,我创建了一个自签名证书,在安装期间安装在用户系统上,它适用于 Chrome、IE 和 Opera,但不适用于 Firefox 和 Edge。所以我在想,有没有更好的方法可以从 https 下的网页访问在本地主机上运行的 SignalR 应用程序?

最佳答案

没有更好的方法。您对“大多数浏览器不允许来自安全页面的不安全连接”的理解是正确的。我相信没有允许这样做的浏览器。因此,如果您想从安全网站调用,您也必须使用安全连接。

我不知道您在使用 Edge 时遇到的问题,因为我可以确认它确实有效。 Firefox 不会信任证书库中的证书,即使它是受信任的根证书或具有受信任的根证书。您必须为此证书手动添加异常(exception)。详细信息,或者至少是可以让您找到执行此操作的正确方法的信息,can be found here.

为了确保您的证书和配置正确,您必须做一些事情。首先,您必须拥有一个包含公钥和私钥的格式良好的证书,以及一个仅包含其公钥的格式良好的证书颁发机构证书。我所说的“格式良好”是指它必须包含浏览器完全信任所需的所有信息,例如主题备用名称条目。

您可以使用 OpenSSL 生成 CA,然后使用它来签署将用于 SSL 端口的证书。导出 CA 的公钥 和 SSL 证书的公钥和私钥。导出 CA 的私有(private) key 是一个主要的禁忌。这将允许第三方从中创建新证书并将它们安装在您客户的机器上。 CA 安装在计算机的受信任的根证书颁发机构存储中。 SSL 证书可以进入个人/证书商店。

完成这些后,您必须使用 netsh 命令行工具配置用于访问和 SSL 的 URL/端口。添加一个URLACL,允许应用程序访问url和端口(netsh.exe http add urlacl),然后将证书分配给该端口(netsh.exe http add sslcert)。

完成所有这些后,您应该可以开始了。您应该遇到的唯一实际问题是 Chrome 对您的证书配置要求很高,而 Firefox 拒绝信任您的 CA 证书,即使它在您受信任的证书存储中。 SCSS 。

对于 Edge,我绝对可以保证,如果您执行上述所有操作,它正常工作。如果没有,您需要咨询 js 控制台以查看它抛出的错误。

关于c# - 从浏览器访问在本地主机上运行的 SignalR 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46449524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com