繁体   English   中英

使用 Apple 登录:验证我的域不起作用

[英]Sign In with Apple: verify my domain not working

我在我的移动应用程序中集成了登录与 Apple 我按照开发者门户中提供的配置步骤下载了apple-developer-domain-association.txt文件并将其放置在我的服务器上的给定路径中。 在此处输入图片说明 现在文件正在从网络浏览器加载,但我无法在 Apple 开发人员帐户上验证我的域。 它给了我一条错误消息“域验证失败”。

有人遇到同样的问题吗? 如何成功验证

要验证域以配置登录 Apple apple-developer-domain-association.txt文件必须可公开访问。

https://{YOUR_DOMAIN}/.well-known/apple-developer-domain-association.txt

确保

  1. 域和与电子邮件地址关联的域必须符合发件人策略框架 (SPF) 标准。
  2. 必须可以通过https访问。 http 不起作用。
  3. 甚至没有重定向到wwww 上面提到的示例 url 必须在没有任何重定向的情况下提供apple-developer-domain-association.txt文件。

提示:如果您使用wwwapple-developer-domain-association.txt提供服务,那么您必须注册域www.{YOUR_DOMAIN}白色配置,在 developer.apple.com 上使用苹果配置登录。 为此,您必须确保www.{YOUR_DOMAIN}符合 SPF。

继续并添加到@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 重定向我不知道我们的服务器会这样做,我的 devops 帮助我解决了这个问题,只是为了验证。

最好的解决方案 IMO 只是使用您自己的中继微服务和一个独特的专用域......

为了扩展@ MTZ4 的响应(顺便说一句,因为你已经解决了它,所以我赞成),这是我需要完成的过程,还有一些指向其他不太熟悉解决这些类型问题的人的指示。

就我而言,我让 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 实验室证书检查器 只需输入您的根域并让报告运行(需要几分钟)。 在报告响应中,查找密码套件部分并验证 Apple 想要的 TLS 密码可用。 在下图中,您可以看到它们呈橙色并标记为弱。

您可以忽略状态,这是因为这些密码不使用临时密钥并且不会在 TLS 1.3 中使用。

SSL 实验室结果

如果您想要更全面的测试,请安装NMAP ,然后下载ssl-enum-ciphers 脚本 安装 NMAP 并下载脚本后,针对您的域执行脚本:

nmap --script ssl-enum-ciphers -p 443 my-root-domain.com

这会产生一个如下所示的结果集:

NMAP 结果

再次查找TLSv1.2部分,并根据 Apple 的列表检查您的密码列表。 如果它们不存在(它们在上图中缺失),那么这就是您的问题所在。

那么如何修复呢? 那么有几个选项,这一切都取决于您的 TLS 提供商,根据您的配置,它可能是您的网络主机或您的 DNS 主机。

对我们来说,我们使用 CloudFlare 作为我们的 DNS 提供商。 CloudFlare 还提供 TLS 密码。 因为 CloudFlare 不支持 Apple 需要的密码(上面的 NMAP 图片),并且由于他们对 TLS 1.2 和迁移到 TLS 1.3 的安全担忧,他们不会添加它们,我们不得不禁用 CloudFlare 的代理服务以允许 TLS 证书由我们的托管服务 (Heroku) 提供。

结果证明这很容易。 只需登录CloudFlare,转到DNS条目并更改流量路由行为(单击橙色云使其变灰进行验证,然后在验证完成后再次单击它)。 有关更多信息,请参阅CloudFlare 的支持页面

完成此操作后,Heroku 将提供 TLS 密码,其中包括 Apple 所需的密码(如上面的 SSL Labs 图像所示)。

最终,为您的 TLS 密码提供服务的人必须包括 Apple 需要的密码。 如果上面的测试没有显示正确的密码,请检查您的 DNS/TLS 服务和您的托管服务提供商,看看他们是否支持它们。 如果他们不这样做,那么您可能需要切换。

最后还有一点值得注意的是,在苹果的开发者门户中,点击验证文件的下载按钮时,不要再次点击! 每次单击该按钮时,验证文件都会更改,因为它似乎是动态生成的。

只需修复所有 TLS 问题,然后登录 Apple 开发人员门户,下载文件,上传到您的服务器,然后进行验证。

我确实最终在其中一些方面与 Apple 支持合作,他们正在考虑在验证页面中添加一些文档,说明需要哪些密码,以便其他人不会遇到同样的问题。

我正在运行 node js 和 express 并且遇到了问题,因为我从 Sectigo 购买了便宜的 SSL 证书。 这是我为修复它所做的。

  1. 检查您的 SSL 证书是否有错误https://www.digicert.com/help/

  2. 我必须安装一个中间证书。 那解决了这个问题。 如果您在 Safari 中执行检查,它不会向您确认域已验证。 相反,在 Chrome 中执行检查,它会给你一个确认。

  3. 检查从您的服务器返回的 HTTP 标头。 如果是 301,Apple 不会跟进。 相反,验证文件必须通过 200 HTTP 状态代码返回。 我指的验证文件是https://example.com/.well-known/apple-developer-domain-association.txt ,其中 example.com 是您的域。

如果您使用 Cloudflare 免费套餐,升级到 PRO 计划(目前每月 20 美元)就可以了。 他们所有的付费计划都包含所需的密码。

当然,您可以在验证后随时取消计划并返回免费。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM