我在 iOS 应用的后台运行了一个名为 Mongoose 的嵌入式 Web 服务器。这只是暂时运行。
我目前使用的是私有 IP 地址,但我需要 HTTPS。要使用 HTTPS,需要公共 IP 地址或 DNS 配置。我不确定在我的环境中(使用 Mongoose 服务器)这是否可行。如果有人有这方面的信息,请告诉我,我将不胜感激。
进一步解释
服务器和客户端都位于应用程序内。客户端只能执行下载服务器托管的文件的任务。因此,它一直只使用环回地址(127.0.0.x)。换句话说,客户端和服务器是一对一的关系。不需要共享使用。
但是,当我在应用程序内打开 Safari 时,页面被阻止,并显示一条消息“无法在 Safari 中打开页面。错误:启用仅 HTTPS 模式时无法导航到 HTTP URL。”
我正在努力解决这个问题。这个问题与 Safari 的 HSTS(HTTP 严格传输安全)有关
嵌入式 Web 服务器的概念可能比较陌生,并且可能引起不太好的共鸣。
这里有很多东西需要解开。(不幸的是,你的问题很不清楚)
取决于您的移动设备网络堆栈的配置方式 - 如果设备获得了全球可路由的 IP 地址(有点不可能,但并非不可能)并且路由器可以进行端口映射,则移动网络服务器可以获得公共 IP 地址。
这就是说 -
Web 服务器不需要公共 IP 地址即可在本地工作 - 它需要与虚拟主机关联的域的可识别/接受的证书(并且 IP 地址无关紧要 - 据我所知,您无法为 IP 地址创建证书,只能为域名创建证书)。如果您有一种将域名解析为内部 IP 地址的机制,并且您可以获取私钥并生成证书(这是一个很长的话题,但这可以通过自签名证书或您购买和验证的证书来完成),您可以将其应用于 Web 服务器。
您完全可以创建一个自签名证书并在浏览器中接受它,然后在没有公共 IP 地址的情况下在移动设备或 LAN 上访问它。如果您可以编辑设备上的 hosts 文件,或者使用其他类型的名称解析(例如路由器中的 DNS),您甚至可以在没有 DNS 的情况下执行此操作