子域(域名)可以有下划线_吗?
当前回答
刚刚创建了本地项目(与流浪者),它在通过ip地址访问时工作得很好。然后我添加了some_name。test to hosts文件,并尝试以这种方式访问它,但我一直得到“坏请求- 400”。浪费了好几个小时,直到我发现把域名改成某个名字。测试解决了问题。所以至少在Mac OS上是不行的。
其他回答
澄清bortzmeyer和David Tonhofer,域名和子域名标签可以包含前导下划线,但没有其他地方。
如David Tonhofer所述,标签是介于句号之间的部分,除了指定服务标签和端口标签以区别于普通标签外,其他部分都应遵循LDH规则。然后,它们必须出现在标签的开头,标签应该是来自服务名称和端口号注册表的“短名称”,端口号不带前导0,或者协议(即。tcp, udp)。这些服务标签进一步限制为15个字符。
RFC2782指定前缀 带下划线的服务记录子域。 RFC6698指定前缀 TLSA证书记录中带下划线的端口号。
与David Tonhofer的回答相反,IDN不允许编码下划线('_' U+005F LOW LINE)或任何其他无效的ASCII字符。
从RFC5890
(. .]两个新的LDH标签子集由 介绍IDNA。这些被称为保留LDH标签(R-LDH 非保留LDH标签(NR-LDH标签)。保留LDH 标签,在其他一些情况下被称为“带标签的域名”,具有 它们在第三和第四个中包含“——”的属性 其他符合LDH标记规则的字符。
Punycode将所有ASCII码点直接编码为ASCII,包括下划线。生成的R-LDH不符合LDH标签规则。例如,Σ_.com将被编码为xn——_-zmb.com,这违反了规则。可能会有一个单应码点,看起来像一个下划线,可以合法编码(可能是'_' U+FF3F fullwidth low line),但这些类型的码点将被RFC5892在2.3 IgnorableProperties中归类为不允许的非character_code_point。
RACE(另一个提议的IDN编码方案)没有被IETF接受为标准,不应该被使用。
这里给出的大多数答案都是错误的。这是完全合法的 域名中的下划线。让我引用标准,RFC 2181,第11节,“名称语法”:
DNS本身对特定的标签只有一个限制 可用于标识资源记录。那一个 限制涉及到标签的长度和完整 的名字。[…DNS协议的实现不能放置任何 对可使用标签的限制。特别是DNS 服务器不能因为一个区域包含标签而拒绝提供服务 这对于某些DNS客户端程序来说可能是不可接受的。
请参见原始DNS规范,RFC 1034,第3.5节 "首选名称语法"但请仔细阅读。
带下划线的域在野外非常常见。检查_jabber._tcp.gmail.com或_sip._udp.apnic.net。
这里提到的其他RFC处理不同的事情。最初的 问题是关于域名的。如果问题是关于主持人的 名称(或者对于包含主机名的url),则为 不同的是,相关的标准是RFC 1123,章节2.1“主机 名称和数字”,将主机名限制为 letters-digits-hyphen。
截至2022年,谷歌搜索中出现了子域名包含下划线的网站。
最近cab论坛(*)决定
在任何dNSName条目中包含下划线字符且有效期超过30天的所有证书必须在2019年1月15日之前撤销。https://cabforum.org/2018/11/12/ballot-sc-12-sunset-of-underscores-in-dnsnames/
这意味着您将不再允许在具有ssl/tls证书的域中使用下划线。
(*)证书颁发机构浏览器论坛(CA/浏览器论坛)是主要证书颁发者(定义见下文2.1(a)(1)和(2)节)和互联网浏览器软件和其他使用证书的应用程序供应商(定义见下文2.1(a)(3)节)的自愿聚会。
不,你不能在子域中使用下划线,只能在连字符(破折号)中使用。例如,my-subdomain.agahost.com是可以接受的,my_subdomain.agahost.com是不可以接受的。
推荐文章
- 为什么标准迭代器范围是[begin, end]而不是[begin, end]?
- extern关键字对C函数的影响
- 我可以在/etc/hosts中映射主机名*和端口*吗?
- HTML表单上的默认提交按钮是如何确定的?
- 如何使用谷歌应用程序引擎与我自己的裸域(不是子域)?
- 如何列出所有DNS记录?
- 没有href属性的锚标记安全吗?
- CSV文件可以有注释吗?
- 当使用带有子域的邮差时,出现“无法得到任何响应”的响应
- (域名)子域名中可以有下划线“_”吗?
- JSON语法是否允许在对象中重复键?
- 错误“getaddrinfo EAI_AGAIN”的原因是什么?
- 我如何得到一个域的所有子域的列表?
- __PRETTY_FUNCTION__, __FUNCTION__, __func__之间的区别是什么?
- iframe被认为是“不好的做法”吗?