Gitlab Pages:无法验证域所有权
Posted
技术标签:
【中文标题】Gitlab Pages:无法验证域所有权【英文标题】:Gitlab Pages: Failed to verify domain ownership 【发布时间】:2018-08-01 10:54:00 【问题描述】:今天早上,我收到了托管在自定义域上的每个 Gitlab 页面的电子邮件,说域验证失败。
这很好,因为我认为我一开始就没有验证过它们——在 Gitlab 上很好地实现了这一点。
当我在每个 repo 上的 Settings>Pages>Domain_Details 上进行操作时,我看到了创建以下记录的说明:
_gitlab-pages-verification-code.blog.ollyfg.com TXT gitlab-pages-verification-code=32_digit_long_code
在创建此记录并单击“验证所有权”按钮时,我收到“验证域所有权失败”消息。
我已确保记录 已设置,并且正在调用
dig -t txt +short _gitlab-pages-verification-code.blog.ollyfg.com
返回:
"gitlab-pages-verification-code=same_32_digit_long_code"
这是 Gitlab 中的错误吗?我是不是做错了什么?
谢谢!
【问题讨论】:
等待 24 小时以传播 DNS,然后重试。 在这里看到同样的东西,除了使用根级 TXT 而不是_gitlab-pages-verification-code.
子域
可能它没有传播到您的辅助 dns 服务器之一,GitLab 正在使用这个确切的从服务器进行验证。至少我认为这就是给我带来麻烦的原因。从我的区域中删除陈旧的服务器后验证成功。
【参考方案1】:
现在是 2021 年,这个问题仍然存在。无法使用 gitlab 建议的 CNAME 和 TXT 验证域。不得不在godaddy上使用:
subdomain A 35.185.44.232
subdomain TXT gitlab-pages-verification-code=####
【讨论】:
【参考方案2】:对于 GoDaddy(2020 年 4 月),我必须执行以下操作:
|Type |Name |Value |
-----------------------------------------------------------------------------------
|A |example.com (or @) |35.185.44.232 |
|TXT |_gitlab-pages-verification-code|gitlab-pages-verification-code=blahblahblah|
|A |www |35.185.44.232 |
|CNAME|www.example.com |example.gitlab.io |
|TXT |_gitlab-pages-verification-code|gitlab-pages-verification-code=blahblahblah|
| |(or _gitlab-pages.verification-| |
| |code.www) | |
虽然文档说使用 _gitlab-pages-verification-code.example.com
和 _gitlab-pages-verification-code.www.example.com
,但这些对我不起作用,我可以在更改并重新检查我的验证状态后几秒钟内看到它从未验证变为已验证,反之亦然.
【讨论】:
【参考方案3】:文档(和验证页面)让我有点困惑。以下是在 GoDaddy 上对我有用的方法:
一条记录:
姓名:@
值:35.185.44.232
CNAME:
名称:example.com
值:username.gitlab.io
TXT 记录:
姓名:@
值:gitlab-pages-verification-code=00112233445566778899aabbccddeeff
已通过 Gitlab 验证,并且:
dig -t txt +short example.com
【讨论】:
如果您没有使用任何子域,则不需要 CNAME 记录。如果您使用子域,则不需要 A 记录。在这两种情况下都为我工作。 @Atiq 事实上,我确实需要 A 和 CNAME 才能工作,而且我没有使用子域。 有趣。我今天配置它,我的域不需要 cname。可能是他们更新了系统。 但是为什么@
根据 GitLab 的名称必须是 _gitlab-pages-verification-code.gms-ai.com
?
不确定@VitalyZdanevich 也许他们再次更改了文档【参考方案4】:
我真的很难让它发挥作用。但最后下面的设置对我有用。
GoDaddy
domain.com
一条记录
+-----------+---------------------+
| Host | @ |
+-----------+---------------------+
| Points To | 35.185.44.232 |
+-----------+---------------------+
验证您的域添加TXT记录
TXT 记录
+-----------+-----------------------------------------------------------------+
| Host | @ |
+-----------+-----------------------------------------------------------------+
| TXT Value | gitlab-pages-verification-code=00112233445566778899aabbccddeeff |
+-----------+-----------------------------------------------------------------+
subdomain.domain.com
CNAME 记录
+-----------+---------------------+
| Host | subdomain |
+-----------+---------------------+
| Points To | namespace.gitlab.io |
+-----------+---------------------+
验证您的域添加TXT记录
TXT 记录
+-----------+-----------------------------------------------------------------+
| Host | _gitlab-pages-verification-code.subdomain |
+-----------+-----------------------------------------------------------------+
| TXT Value | gitlab-pages-verification-code=00112233445566778899aabbccddeeff |
+-----------+-----------------------------------------------------------------+
注意子域和验证码将在设置>页面下找到(创建/详细信息) GitLab.com 上的 GitLab Pages IP 已更改 从 52.167.214.135 到 35.185.44.232 在 2018
【讨论】:
【参考方案5】:这里是如何使用Gandi 将subdomain.domain.com
指向namespace.gitlab.io/project-name
。
GitLab 通过Settings > Pages > New Domain
向项目添加新子域时生成的CNAME
和TXT
记录在我的情况下不工作。确切的非工作记录是mysubdomain.mydomain.com CNAME mynamespace.gitlab.io.
和_gitlab-pages-verification-code.mysubdomain.mydomain.com TXT gitlab-pages-verification-code=00112233445566778899aabbccddeeff
。
像mysubdomain CNAME mynamespace.gitlab.io.
(末尾有点和不带点)这样的修改不起作用,或者(ping mysubdomain.mydomain.com
表示未知主机)。
在我的情况下,使用A
记录和TXT
记录,并且记录名称字段中只有子域确实有效。以下是具体的工作记录:
mysubdomain 1800 IN A 35.185.44.232
mysubdomain 1800 IN TXT "gitlab-pages-verification-code=00112233445566778899aabbccddeeff"
请注意,namespace.gitlab.io
IP 地址在 2018 年已从 52.167.214.135
更改为 35.185.44.232
。
等待至少 30 分钟以使记录传播。
在我的例子中,GitLab 也自动验证了域,我不需要点击 Verify
按钮。
【讨论】:
我也是。以防万一像我一样无知的人也在为此苦苦挣扎:我能够将两个不同的 Gitlab 页面项目映射到同一个 DNS 的两个子域:en.example.org
到 namespace.gitlab.io
和 fr.example.org
到 namespace.gitlab.io/french
。文档似乎表明我需要CNAME
记录来执行此操作,但我按照这些说明使用了A
记录,并且它起作用了。
这个答案对我帮助很大,谢谢。但是,我想在这里添加另一个我遇到的特定子域WWW
的问题。推荐的方法对我来说是失败的,因为 Gandi 不允许 WWW
的 TXT
类型条目(恕我直言很正常)。因此,我没有更改_gitlab-pages-verification-code.mysubdomain.mydomain.com to m̀ysubdomain
,而是将其更改为_gitlab-pages-verification-code.mysubdomain
,并且它可以工作。顺便说一句,这与 Gandi 如何处理 DNS 条目名称有关,它总是添加 mydomain.com。 表格模式编辑DNS记录时清晰,文本模式不明显。
@trblnc 可以确认您的方法适用于谷歌域上的 www;我在这里尝试过的其他方法都没有!【参考方案6】:
等一下,它对我有用。最初,遇到与您提到的相同的问题。
此外,您可能会发现此页面很有用:https://gitlab.com/help/user/project/pages/getting_started_part_three.md#dns-txt-record
这可能是值得的,尝试:
blog.ollyfg.com
而不是:_gitlab-pages-verification-code.blog.ollyfg.com
【讨论】:
为了让事情更清楚,正如@ryu 提到的,这个问题可能是由于域的多种用途引起的——(电子邮件、非 gitlab 使用等)我遇到了同样的问题尝试使用子域时。为了解决这个问题,我将我的 DNS 记录更改为类型 A,并使用 gitlab 提供的密钥添加了 DNS TXT 记录。它终于有所帮助。subdomain.domain.zone A 52.167.214.135
subdomain.domain.zone TXT gitlab-pages-verification-code=your_code_here
以上是关于Gitlab Pages:无法验证域所有权的主要内容,如果未能解决你的问题,请参考以下文章
如何修复:域无法解析到 GitHub Pages 服务器。启用强制 HTTPS 的自定义域设置的 Github 页面出错?