3

众所周知,Google App Engine 默认将其应用程序托管在 appspot.com 子域上,其通配符 (*.appspot.com) SSL 证书允许任何应用程序在此子域上使用 https。

进入带有通用链接和 Web 标记的 iOS 9,现在需要托管一个带有指定应用链接的“签名 json 文件”。那里的关键词是“签名”。 此文件需要使用有效的 SSL 证书和私钥进行签名。(清单 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)

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

2015 年 8 月 10 日更新

让我们的开发运维人员在工作中使用 CA 和中间证书签名并上传它,它就成功了!

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

4

3 回答 3

4

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

于 2015-10-15T22:05:47.307 回答
0

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

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

于 2015-09-11T19:28:00.493 回答
0

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

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

于 2016-03-04T04:30:30.153 回答