未找到Apple-app-site-association

时间:2015-11-04 20:44:55

标签: ios9 corespotlight ios-universal-links

我试图通过Apple Search Validation Tool,但我遇到了与apple-app-site-association有关的问题。

由于某种原因,机器人无法找到我的档案。但是如果你在那里打开网址。

这不是格式化问题,因为甚至找不到该文件。 我有https,所以不需要签署我的文件。

如文档中所述,我的文件没有任何扩展名。

有人遇到类似的问题并在Apple Developer foruns上询问,但它对我没有帮助。

我的网址是https://ps3looke.ottvs.com.br/apple-app-site-association

我尝试用cUrl检查它,一切看起来都很正常:

Caios-MacBook-Air:~ caiocoan$ curl -I https://ps3looke.ottvs.com.br/apple-app-site-association
HTTP/1.1 200 OK
Content-Length: 135
Content-Type: application/json
Last-Modified: Tue, 27 Oct 2015 15:36:52 GMT
Accept-Ranges: bytes
ETag: "f81e714dcd10d11:0"
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
Date: Wed, 04 Nov 2015 20:43:25 GMT

我可能做错的任何想法,或者我需要做什么?

2 个答案:

答案 0 :(得分:3)

我目前正在就同一问题与Microsoft支持部门联系。我最初的访问是Windows Server 2012 R2在处理TLS 1.2时存在一个错误,这是AppleBot使用爬网页面的HTTPS协议。

您的apple-app-site-association看起来非常精致

修改

我发现,即使验证工具不起作用,当您在iPad / iPhone上访问Safari网站时,xxx应用程序中的Open也会弹出

更新2015-12-22

微软已经回复了我。问题是AppleBot发送以下客户端Hello以启动SSL连接

Signature Hash Algorithms (4 algorithms)
    Signature Hash Algorithm: 0x0401
        Signature Hash Algorithm Hash: SHA256 (4)
        Signature Hash Algorithm Signature: RSA (1)
    Signature Hash Algorithm: 0x0403
        Signature Hash Algorithm Hash: SHA256 (4)
        Signature Hash Algorithm Signature: ECDSA (3)
    Signature Hash Algorithm: 0x0201
        Signature Hash Algorithm Hash: SHA1 (2)
        Signature Hash Algorithm Signature: RSA (1)
    Signature Hash Algorithm: 0x0203
        Signature Hash Algorithm Hash: SHA1 (2)
        Signature Hash Algorithm Signature: ECDSA (3)

当您查看SSL证书的证书层次结构时,您会看到

COMODO RSA Organization Validation Secure Server CA
    Certificate signature algorithm
        PKCS #1 SHA-384 With RSA Encryption

当Windows Server从AppleBot收到Client Hello时,它看到AppleBot支持SHA1和SHA256,但是,您的证书需要支持SHA384。因此,根据http://tools.ietf.org/html/rfc5246#section-7.4.1.4.1,无法满足请求,Windows Server重置连接。然后AppleBot报告未找到文件。

具体来说,RFC5246说

   If the client provided a "signature_algorithms" extension, then all
   certificates provided by the server MUST be signed by a
   hash/signature algorithm pair that appears in that extension.

Microsoft建议的补救措施

当您需要使用验证程序时,请创建自签名证书。默认情况下,Windows使用SHA1作为证书签名算法。将自签名证书绑定到您的HTTPS端点,然后使用验证程序确保您的apple-app-site-association文件正常。然后,您可以切换回您购买的实际SSL证书。

我的警告

不要在生产服务器上放置自签名证书。创建另一个要测试的服务器!

答案 1 :(得分:1)

通过在文件名中添加.json扩展名,然后在web.config中添加重写规则,我能够通过URL Rewrite模块修复此问题,如下所示:

<rule name="AppleAppSite" enabled="true" stopProcessing="true">
    <match url="^apple-app-site-association$"/>
    <action type="Rewrite" url="apple-app-site-association.json"/>
</rule>