我正在将与Apple登录集成到我的移动应用程序中。我按照开发人员门户中提供的配置步骤操作,并下载了 apple-developer-domain-association.txt 文件,并将其放在给定路径的服务器上。https://pastebin.com/bqAdKGya现在,该文件是从网络浏览器加载,但无法在Apple开发人员帐户上验证我的域。它给我一个错误消息“ 域验证失败”。
有人遇到同样的问题吗?如何成功通过验证
答案 0 :(得分:4)
要验证域以进行配置,必须公开访问“使用Apple登录apple-developer-domain-association.txt
”文件。
https://{YOUR_DOMAIN}/.well-known/apple-developer-domain-association.txt
确定
https
访问。 http不起作用。wwww
。上面提到的示例网址必须在没有任何重定向的情况下投放apple-developer-domain-association.txt
文件。提示:如果您要向apple-developer-domain-association.txt
提供www
服务,则必须在developer.apple.com上使用苹果配置注册域www.{YOUR_DOMAIN}
白色配置。为此,您必须确保www.{YOUR_DOMAIN}
符合SPF。
答案 1 :(得分:2)
继续并添加到@Bilal
A。如果该域不符合SPF要求,则在尝试将其添加到开发人员门户中时会立即被提示
B。如果您不确定网站是否被重定向,可以在http://www.redirect-checker.org/中进行检查,或者仅使用邮递员并在请求设置中禁用“自动跟随重定向”选项
C。 Apple要求您的服务器必须支持传输层安全性(TLS)1.2协议和下面列出的密码套件之一:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
对我来说,问题是www重定向,我不知道服务器是否会这样做,我的开发人员帮助我解决了这一问题,仅用于验证。
最佳解决方案IMO只是使用您自己的中继微服务和唯一的专用域...
答案 2 :(得分:2)
要扩展@ MTZ4的响应(因为钉了钉,所以将其标记为BTW),这是我需要完成的过程,并提供一些指向不熟悉解决此类问题的人的指针。
就我而言,我让CloudFlare处理DNS和TLS密码证书以及由Heroku服务的站点。
第一步是确定TLS提供商是否提供Apple要求的适当TLS密码。
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
最简单的方法之一是使用SSL labs certificate checker。只需输入您的根域,然后运行报告(需要几分钟)。在报告响应中,找到 Cipher Suites 部分,并验证Apple所需的TLS密码是否可用。在下图中,您可以看到它们显示为橙色并标记为弱。
您可以忽略弱状态,这是因为这些密码不使用临时密钥,并且不会在TLS 1.3中使用。
如果要进行更全面的测试,请安装NMAP,然后下载ssl-enum-ciphers script。安装NMAP并下载脚本后,请针对您的域执行脚本:
nmap --script ssl-enum-ciphers -p 443 my-root-domain.com
这将产生一个如下所示的结果集:
再次查找 TLSv1.2 部分,并对照Apple列表检查密码列表。如果它们不存在(上图中没有显示),那就是问题所在。
那么如何解决?嗯,有几个选项,这完全取决于您的TLS提供程序,取决于您的配置,它可能是您的Web主机,也可能是您的DNS主机。
对于我们来说,我们正在使用CloudFlare作为我们的DNS提供程序。 CloudFlare还提供TLS密码。由于CloudFlare不支持Apple所需的密码(上面的NMAP图像),并且由于对TLS 1.2和迁移至TLS 1.3的安全性考虑而不会添加密码,因此我们必须禁用CloudFlare的代理服务,以允许使用由我们的托管服务(Heroku)提供。
事实证明这很容易。只需登录CloudFlare,转到DNS条目并更改流量路由行为即可(单击橙色云使其变为灰色以进行验证,然后在验证完成后再次单击它)。有关更多信息,请参见CloudFlare's support page。
完成此操作后,Heroku将提供TLS密码,其中包括Apple所需的密码(如上面的SSL Labs图像所示)。
最终,为您的TLS密码服务的人必须包括Apple所需的密码。如果上述测试未显示正确的密码,请检查DNS / TLS服务和托管提供商,以查看它们是否支持它们。如果没有,那么您可能需要切换。
最后,还值得注意的是,在Apple的开发人员门户中,单击验证文件的下载按钮时,请勿再次单击它!每次单击该按钮时,验证文件都会更改,因为它似乎是动态生成的。
只需解决所有TLS问题,然后登录到Apple开发人员门户,下载文件,上传到您的服务器,然后进行验证。
我最终还是在Apple支持下进行了这些工作,他们正在考虑向验证页面添加一些文档,以说明需要什么密码,以便其他人不会遇到相同的问题。
答案 3 :(得分:1)
我正在运行节点js并表达问题,因为我从Sectigo购买了便宜的SSL证书。 这是我要修复的工作。
检查您的SSL证书中的错误https://www.digicert.com/help/
我必须安装一个中间证书。那解决了问题。 如果您在Safari中执行检查,则不会确认您已验证域。 而是在Chrome中执行检查,它会给您确认。
检查从服务器返回的HTTP标头。如果是301,Apple将不会遵循。而是必须通过200 HTTP状态代码返回验证文件。我指的是https://example.com/.well-known/apple-developer-domain-association.txt,其中example.com是您的域。
答案 4 :(得分:0)
如果您正在使用Cloudflare免费套餐,则升级到PRO计划(当前每月20美元)即可解决问题。他们所有的付费计划都包含必需的密码。
当然,您始终可以在验证后取消计划,然后返回免费状态。