The definitive descriptions of the rules for forming domain names appear in RFC 1035, RFC 1123, and RFC 2181. A domain name consists of one or more parts, technically called labels, that are conventionally concatenated, and delimited by dots, such as example.com. The right-most label conveys the top-level domain; for example, the domain name www.example.com belongs to the top-level domain com. The hierarchy of domains descends from right to left; each label to the left specifies a subdivision, or...

This wouldn’t directly bother Certbot (and wouldn’t bother Let’s Encrypt if you’re not literally trying to get a certificate covering that name), but it looks like some of Python 3’s internal logic crashes when asked to deal with hostnames that are longer than 63 bytes.

We’ll probably need to discuss whether we want to ask the Python developers to change this or whether we want to change the particular function that we call here. In the meantime, you could work around this by

changing your system’s hostname so that it’s less than 64 bytes long

running Certbot with Python 2 rather than Python 3 (maybe edit /usr/bin/certbot so that it starts with #!/usr/bin/python2 instead of #!/usr/bin/python3?)

editing the Certbot code on your system so that it uses some other value for your local host name here

Good to know! The docs said a week, so i was a little worried. Thanks for your help! I’m going to try renaming my domain first. (I tried rolling back python but it required an old version (‘certbot==0.23.0’) that I didn’t have.

https://community.letsencrypt.org/t/attempting-to-generate-cert-getting-unicodeerror-encoding-with-idna-codec-failed/61675
This prevents account registration in this case when Certbot is run with Python 3. It wasn't a problem in Python 2,...

area: pythonarea: ui / uxbughelp wanted

to track Certbot’s response to this issue, although I’m not sure how high a priority it will be.