【问题标题】:Sign apple-app-site-association签署 apple-app-site-association
【发布时间】:2015-09-29 11:48:37
【问题描述】:

我尝试实现iOS9Universal Links

我正在使用本教程: http://blog.hokolinks.com/how-to-implement-apple-universal-links-on-ios-9/ 还有这个: https://developer.apple.com/library/ios/documentation/Security/Reference/SharedWebCredentialsRef/

但他们都没有完成整个过程。

我会apple-app-site-association 归档。

上面的链接说要这样做:

cat json.txt | openssl smime -sign -inkey example.com.key
                            -signer example.com.cert
                            -certfile intermediate.cert
                            -noattr -nodetach
                            -outform DER > apple-app-site-association

而且我没有 .cert 文件(也不知道如何创建它)。

表格Apple docs:

该文件必须是由有效 TLS 证书签署的 CMS。

任何支持都会很棒。

提前致谢!

【问题讨论】:

    标签: ios ssl ios-universal-links


    【解决方案1】:

    从 iOS 9 开发者种子 2 开始,您不再需要为通用链接签署 apple-app-site-association 文件。网络上的大多数地方仍然提到需要签署文件,就像官方 Apple Docs 一样。这是宣布您不再需要签署文件的 WWDC 会议。 https://developer.apple.com/videos/play/wwdc2015-509/ 转到他们宣布这一点和限制的视频约 14 分钟(不向后兼容 iOS 8)。

    我已在 iOS 9 官方版本中验证通用链接可用于未签名文件。

    【讨论】:

    • 如果你想在 Safari 上使用 UL 还需要签署 apple-app-site-association 是不是真的?
    【解决方案2】:

    这绝对不是一个简单的过程。您可以找到另一篇有用的博客文章 here。我直接从那个帖子中撤出。

    而且我没有 .cert 文件(也不知道如何创建它)。

    来自帖子:

    获得 SSL 认证

    您需要为要使用的域获取 SSL 认证文件 托管通用链接。为此,您需要使用 第三方服务为您的域注册 SSL,并创建 您需要的文件。环顾四周,我们选择了 Digicert 来处理 branch.io 和相关的子域。

    以下是创建 SSL 认证的步骤:

    1. 访问https://www.digicert.com/easy-csr/openssl.htm并填写顶部的表格以生成openSSL命令。保留此窗口 打开

    2. 登录到您的远程服务器

    3. 执行openSSL命令生成证书签名请求(.csr)和证书文件(.cert)

    4. 通过https://www.digicert.com/welcome/ssl-plus.htm支付您的 SSL 认证费用

    5. 等待 Digicert 批准并向您发送最终文件

    6. 最后,将 yourdomain.com.cert、yourdomain.com.key 和 digicertintermediate.cert 移动到远程服务器上的同一目录中

    如果您想免费获得证书,也可以尝试其他流程。 startssl.com 相当受欢迎。有一个分步指南here

    最后,您可以免费使用 CloudFlare TLS。这不会帮助您签署apple-app-site-association 文件,但有助于确保您的(子)域通过HTTPS 提供apple-app-site-association,这是必需的。这是您的(子)域在正确配置后的外观:


    (来源:branch.io

    当您完成这项工作后,请发布您采取了哪些步骤来帮助其他开发人员。虽然这是大公司很容易拥有人力来设置的东西,但对于单独的开发人员来说,这是相当棘手的。

    【讨论】:

    • 为什么今天有 2 个人投了反对票?出于礼貌,请在您投反对票时留下评论,说明您投反对票的原因。
    【解决方案3】:
    cat json.txt | openssl smime -sign -inkey website.key -signer website_com.cert -noattr -nodetach -outform DER > apple-app-site-association
    

    此命令创建apple-app-site-association 文件,该文件已存储在 Web 服务器的根目录中。以及 website.key 和 webiste.cert 这些文件,当您通过 ftp 连接到您的网络服务器时,您将在 ssl 文件夹中获得这些文件,如果您有 ssl 网站,则首先为您的服务器获取 ssl 证书

    【讨论】:

    • 如何获取-inkey website.key,-signer website_com.cert 和 intermediate.pem 文件
    • 我已经使用 openssl pkcs12 -in keyCert.p12 -out pushcert.pem -nodes -clcerts 生成了 .pem 文件
    • 如果您的网站启用了 SSL,那么您将在您的网络服务器的 ssl 文件夹中获得 website.key、website_com.cert,或者您可以要求您的网络服务器支持团队提供同样的信息
    • 如果我的回答对您有所帮助,那么我希望在这里获得支持 :)
    猜你喜欢
    • 1970-01-01
    • 2020-08-28
    • 2017-02-16
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2021-09-13
    相关资源
    最近更新 更多