【发布时间】: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