【问题标题】:How can my *.appspot.com domain support iOS9 Universal Links with Web Markup?我的 *.appspot.com 域如何支持带有 Web 标记的 iOS9 通用链接?
【发布时间】:2015-07-27 23:32:56
【问题描述】:

正如许多人已经知道的那样,默认情况下,Google App Engine 将其应用托管在 appspot.com 子域上,并且其通配符 (*.appspot.com) SSL 证书允许任何应用在此子域上使用 https。

使用 Universal Links 和 Web 标记进入 iOS 9,现在需要托管一个带有指定应用链接的“签名 json 文件”。 那里的关键字是“签名”。 This file needs to be signed with a valid SSL cert and private key.(清单 2-7 和 2-8)

在 Twitter 上,有人告诉我签名证书不必与实际网站的域 SSL 证书匹配,但自签名证书将不起作用。

因此,一种解决方法是简单地购买您自己的 SSL 证书并使用此证书对其进行签名。

我很好奇我们这些在 Google App Engine 上托管 API 和网站和/或使用 Google Cloud Endpoints 的人还有哪些其他选择,因为我认为 Google 不会交出他们的通配符 ssl 证书和供我们使用的私钥;)


2015 年 8 月 5 日更新

要托管 apple-app-site-association 文件,我必须手动打开它,并在调用 webapp2 处理程序时将其吐出,如下所示:

class GetAppleAppSiteAssoc(webapp2.RequestHandler):
    def get(self):
        showAppleAppSiteAssoc(self)

def showAppleAppSiteAssoc(self):
    logging.info("Enter showAppleAppSiteAssoc()")

    path = os.path.join(os.path.dirname(__file__), 'apple-app-site-association')
    fileContents = open(path).read()
    self.response.headers['Content-Type'] = 'application/pkcs7-mime'
    self.response.out.write(fileContents)
    return

app = webapp2.WSGIApplication([('/', MainHandler),
                ('/apple-app-site-association', GetAppleAppSiteAssoc)],
                debug=True)

目前遇到类似于this post 的问题,并尝试使用我的 iOS 分发证书以及工作中的有效证书进行签名。

2015 年 8 月 10 日更新

让我们的开发运维人员在工作中使用 CA 和中间证书签署此文件,然后上传它,它就成功了!

但仍然对其他解决方案感到好奇.....iOS 分发证书不起作用似乎很奇怪。

【问题讨论】:

  • 我很好奇你在哪里托管了这个 apple-app-site-association 文件
  • @st.derrick 它与所有代码位于同一目录中
  • 所以它位于 yoursite.appspot.com/apple-app-site-association 吗?还是在别的地方?
  • 它位于代码所在的沙箱的任何位置。正如您在 python 代码中看到的那样,我从 Web 应用程序代码所在的同一目录加载它。 (不是静态文件夹)
  • 知道了。我想知道在生产中,Apple 在获取 apple-app-site-association 文件时是否查询了子域,或者它是否必须是网站根域的一部分。如果您拥有权利 applinks:subdomain.example.com? AKA 是否会删除 subdomain.example.com/apple-app-site-association?或者在这种情况下它会刮掉example.com/apple-app-site-association

标签: ios google-app-engine ssl ios9 handoff


【解决方案1】:

除非您为运行 iOS 8 的设备实施 Activity Continuation,否则您不必签署 apple-app-site-association。通用链接是 iOS 9 的新功能,Apple 不再要求签署 apple-app-site-association .

【讨论】:

  • 对于不需要 SSL 签名的通用链接,您指的是哪些文档?
  • 在这个来自 WWDC 的视频的 14 分钟标记处,演讲者说从 iOS9 beta 种子 2 开始,不再需要签名。 developer.apple.com/videos/play/wwdc2015-509
【解决方案2】:

这个问题的一个答案指出,任何有效的域证书(带有 CA 证书)都可以对文件进行签名(即使该证书不适用于文件将存在的域)。

我最终为我的一个域购买了一个,并为另一个域签署了文件。

【讨论】:

    【解决方案3】:

    https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

    如果您的应用在 iOS 9 或更高版本中运行并且您使用 HTTPS 来提供 apple-app-site-association 文件,您可以创建一个使用 application/json MIME 类型的纯文本文件,您不需要签字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 2018-10-01
      • 2021-03-02
      • 2017-07-19
      • 1970-01-01
      • 2019-09-09
      • 1970-01-01
      相关资源
      最近更新 更多