thank you for explanation. And sorry for my bad english
So I copy here a good explanation of what I think from https://en.wikipedia.org/wiki/Hostname
Ok, I think we have a problem with different description of what we have here - a hostname or a DNS domain name.
Hostnames are human-readable nicknames that correspond to the address of a device connected to a network. They are used by various naming systems, e.g., Network Information Service (NIS), Domain Name System (DNS), Server Message Block (SMB) and the meaning of hostname varies according to the naming system used.
Hostnames are typically used in an administrative capacity and may appear in computer browser lists, active directory lists, IP address to hostname resolutions, email headers, etc.
On the Internet, a hostname is a domain name assigned to a host computer. This is usually a combination of the host’s local name with its parent domain’s name. For example, en.wikipedia.org consists of a local hostname (en) and the domain name wikipedia.org. This kind of hostname is translated into an IP address via the local hosts file, or the Domain Name System (DNS) resolver. It is possible for a single host computer to have several hostnames; but generally the operating system of the host prefers to have one hostname that the host uses for itself.
Any domain name can also be a hostname, as long as the restrictions mentioned below are followed. So, for example, both en.wikipedia.org and wikipedia.org are hostnames because they both have IP addresses assigned to them. The domain name pmtpa.wikimedia.org is not a hostname since it does not have an IP address (as of now), but rr.pmtpa.wikimedia.org is a hostname. A hostname may be a domain name, if it is properly organized into the domain name system. A domain name may be a hostname if it has been assigned to an Internet host and associated with the host’s IP address.
What I will say is that you actual say that you only support hostnames but in the real world we use DNS - Not least I want to create a certificate for a domain name and use it on the internet - Huh !1!!
Let me quote the standard, RFC 2181, section 11, “Name syntax”:
The DNS itself places only one restriction on the particular labels that can be used to identify resource records. That one restriction relates to the length of the label and the full name. […] Implementations of the DNS protocols must not place any restrictions on the labels that can be used. In particular, DNS servers must not refuse to serve a zone because it contains labels that might not be acceptable to some DNS client programs.
See also the original DNS specification, RFC 1034, section 3.5 “Preferred name syntax” but read it carefully.
Domains with underscores are very common in the wild. Check
Other RFC mentioned here deal with different things. The original question was for domain names. If the question is for host names (or for URLs, which include a host name), then this is different, the relevant standard is RFC 1123, section 2.1 “Host Names and Numbers” which limits host names to letters-digits-hyphen.
Ok now - Can you support DNS domain names or wants letsencrypt to restrict itself to hostnames?
I apologize now when I am totally wrong