0

我已经设置了一个使用自签名证书 (SSL) 运行的本地网络服务器。我还在我的 iOS 15.0 设备上安装了证书,并从设备设置中信任它。但是当我加载 https://my-local-hostname/ 时,它会加载一个带有链接itms-services/.../manifest.plist的下载按钮,然后单击下载按钮,它会显示“无法安装 ***”。
另一方面,如果我运行ngrok以获取具有受信任的根 CA 签名的证书的静态域,它可以工作,这意味着 manifest.plist 配置是正确的。
有没有办法让它直接在 localhost 上工作?有没有人这样做过?

4

2 回答 2

0

我终于想通了。
对于那些对解决方案感兴趣的人,这里是使用 localhost 在本地计算机上进行 OTA 工作的步骤。

  • 在本地机器上设置一个网络服务器(macOS 有一个内置的)
  • 使用自制软件安装minica(用于生成 SSL 证书)
  • 使网站可以通过 https://localhost(或 https://{hostname})访问(这是一篇关于如何做到这一点的好文章
  • 用于minica生成证书,而不是自己制作(只需跳过Generate a private key and certificate for your site文章中提到的步骤,并使用minica --domains {hostname}命令将立即为您生成必要的证书。您可以找到生成的根 CA 证书,其密钥位于~/minica.pem~/minica-key.pem,和您的域的证书位于~/{hostname}/(cert/key).pem,其中{hostname}是您本地机器的主机名。如果您不确定您机器的主机名是什么,只需打开终端并输入hostname
  • /etc/apache2/extra/httpd-ssl.conf指定SSLCertificateFile,SSLCertificateKeyFileSSLCACertificateFile路径中 /path/to/key.pem,/path/to/cert.pem/path/to/minica.pem相应地。
  • 导入minica.pemcert.pem到钥匙串并更改为“始终信任”。
  • 重新启动您的网络服务器。
  • 发送minica.pem和发送cert.pem到 iPhone(使用 AirDrop 或其他),安装配置文件,并从证书信任设置屏幕信任它们)

基本上就是这样。只需在 HTML 代码和 manifest.plist 文件中的任何地方使用 https://{hostname} 而不是 https://localhost,这样您就可以从同一网络中的移动设备访问网站的内容。

于 2022-01-20T14:18:43.413 回答
0

我在一家私人商店发布了一些版本,并且以类似的方式工作。

这个怎么运作 :

为企业分发生成 ipa(使用正确的配置文件) 将 ipa 上传到您想要的任何地方,如果您需要一些漂亮的东西,您可以制作一个应用程序,列出您的 IPA(您自己的私人商店)及其相关信息,以及指向下载它(如下所示) 上传 .plist 文件并使其在 url 字段中的 url 是您在步骤 1 中上传的 .ipa。在您想要的位置创建一个基本的 HTML 页面:用户现在可以单击它并下载;)

<a href="itms-services://?action=download-manifest&url=YOUR-UPLOADED-PLIST-FILE.plist">Click here ;-)</a>
于 2022-01-20T08:51:10.517 回答