我目前正在就同一问题联系 Microsoft 支持。我最初的访问是 Windows Server 2012 R2 在处理 TLS 1.2 时存在错误,这是 AppleBot 使用的 HTTPS 协议来抓取页面。
您的 apple-app-site-association 看起来非常好
编辑
我发现即使验证工具不起作用,当您在 iPad/iPhone 上的 Safari 上访问该网站时,xxx 应用程序中的打开确实会弹出
2015-12-22 更新
微软已经回复我了。问题是 AppleBot 发送以下 Client 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。因此,根据https://www.rfc-editor.org/rfc/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.
微软建议的补救措施
当您需要使用验证器时,请创建自签名证书。默认情况下,Windows 使用 SHA1 作为证书签名算法。将自签名证书绑定到您的 HTTPS 端点,然后使用验证器确保您的 apple-app-site-association 文件正常。然后,您可以切换回您购买的实际 SSL 证书。
我的警告
不要在生产服务器上放置自签名证书。创建另一个服务器进行测试!