Quick response, thank you!

On Tue, 31 Dec 2024 03:22:14 +0100, Kirill A. Korinsky wrote:
> On Tue, 31 Dec 2024 01:44:15 +0100,
> Amelia A Lewis <amyz...@talsever.com> wrote:
>> 
>> $ doas acme-client -vvv simmonpatch.com
>> acme-client: /etc/ssl/private/leo-simmonpatch.com.key: loaded domain key
>> acme-client: /etc/acme/letsencrypt-staging-privkey.pem: loaded account 
>> key
>> acme-client: https://acme-staging.api.letsencrypt.org/directory: 
>> directories
>> acme-client: https://acme-staging.api.letsencrypt.org/directory: bad 
>> comm
>> acme-client: bad exit: netproc(39958): 1
>> 
> 
> can you run host acme-staging.api.letsencrypt.org on the same machine?

$ host acme-staging.api.letsencrypt.org
Host acme-staging.api.letsencrypt.org not found: 3(NXDOMAIN)

Well, that seems dispositive.

$ dig acme-staging.api.letsencrypt.org

; <<>> dig 9.10.8-P1 <<>> acme-staging.api.letsencrypt.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 46315
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;acme-staging.api.letsencrypt.org. IN   A

;; AUTHORITY SECTION:
letsencrypt.org.        1784    IN      SOA     owen.ns.cloudflare.com. 
dns.cloudflare.com. 2360987238 10000 2400 604800 1800

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 30 21:51:48 EST 2024
;; MSG SIZE  rcvd: 123

Hmmmm. okay. That's a confirmation.



> I'm asking because as far as I understand the code at 3:20 am, the only case
> when you see 'bad comm' without additional errors / warnings is DNS related.

Ah. I went looking in netproc.c (after I sent the email; should've 
looked first), and localized it to nfreq() < 0, but couldn't focus 
enough after a day working to figure which of the return -1's in there 
were the bad ones. Which reminds me: I owe the devs an apology (but 
"comm" is unnecessarily cryptic; google keeps suggesting that I must 
mean "bad community" and while I suspect it ought to mean "bad command" 
or "bad communication channel" or something like that, I'm not certain: 
"bad connection" [sic]?). But it is an acme-client bit, and it was rude 
of me to snark on it. Teach me to check the code before asking 
questions.

> I mean that acme-client can't resolve acme-staging.api.letsencrypt.org.

Seems so. Neither acme-staging nor acme.

$ host -t ns letsencrypt.org
letsencrypt.org name server owen.ns.cloudflare.com.
letsencrypt.org name server vera.ns.cloudflare.com.

acme.api.letsencrypt.org is also nxdomain.

host acme{,-staging}.api.letsencrypt.org vera.ns.cloudflare.com ditto.

Pretty much nx-ed. Lemme try a couple things. Same from other server in 
colo (they're sharing the same lookup mechanism, not dispositive).

Okay, trying host acme.api.letsencrypt.org $nameserver and substituting 
the IP address of a nameserver selected from a list of public resolving 
servers in unbound.conf (an older copy has a longer list than new 
installs) remains consistent. NXDOMAIN from everywhere I can start 
from. Is there a problem at le.o? Just me? But if it's just me, then 
directly querying 8.8.8.8 or similar from my home machine _should_ 
resolve, no? Not understanding how it can be filtered for both my home 
machines checking public resolvers and for the servers in colo, but not 
the rest of the world.

FWIW, letsencrypt.org responds positively, and I've been trying to 
browse their docs since yesterday for something that looked like this 
problem. But no one else has reported it? Or at least the available 
hits for a search on 'acme-client "directories" "bad comm" -ai' turns 
up nothing really pointing at dns (or else I missed it).

But wait! I found some curl commands on the net that someone offered 
for debugging, which downloaded json from a staging server, on my 
machine.

host acme-staging-v02.api.letsencrypt.org
acme-staging-v02.api.letsencrypt.org is an alias for 
staging.api.letsencrypt.org.
staging.api.letsencrypt.org is an alias for 
56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com.
56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com has address 
172.65.46.172
56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com has IPv6 address 
2606:4700:60:0:f41b:d4fe:4325:6026

Ah, now *that's* encouraging.

$ host staging.api.letsencrypt.org          
staging.api.letsencrypt.org is an alias for 
56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com.
56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com has address 
172.65.46.172
56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com has IPv6 address 
2606:4700:60:0:f41b:d4fe:4325:6026

lessee, delete an 'acme-' ...

$ doas acme-client -vv simmonpatch.com 
acme-client: /etc/acme/letsencrypt-staging-privkey.pem: loaded account 
key
acme-client: /etc/ssl/private/leo-simmonpatch.com.key: loaded domain key
acme-client: https://staging.api.letsencrypt.org/directory: directories
acme-client: staging.api.letsencrypt.org: DNS: 172.65.46.172
acme-client: 172.65.46.172: tls_write: name 
`staging.api.letsencrypt.org' not present in server certificate
acme-client: 172.65.46.172: tls_read: name 
`staging.api.letsencrypt.org' not present in server certificate
acme-client: https://staging.api.letsencrypt.org/directory: bad comm
acme-client: bad exit: netproc(18286): 1

Progress? At least a different result, if not quite what I hoped for. 
Apparently the main url may have changed as well? Because there's this:
$ host acme-v02.api.letsencrypt.org
acme-v02.api.letsencrypt.org is an alias for prod.api.letsencrypt.org.
prod.api.letsencrypt.org is an alias for 
ca80a1adb12a4fbdac5ffcbc944e9a61.pacloudflare.com.
ca80a1adb12a4fbdac5ffcbc944e9a61.pacloudflare.com has address 
172.65.32.248
ca80a1adb12a4fbdac5ffcbc944e9a61.pacloudflare.com has IPv6 address 
2606:4700:60:0:f53d:5624:85c7:3a2c

Or I've triggered their famous throttling? But that ought to be per 
requesting privkey (or since those can be deleted, per requesting IP). 
I don't want to test against production; that's what staging is for.

It's true that the current production url on 
letencrypt.org/getting-started is acme-v02.api.letsencrypt.org, though, 
so at least that should prolly be updated in acme-client? And at a 
guess, they've made a change to all of those URLs? And it's possible 
that acme-client is running against the v1 protocol instead of v2? Have 
they shut it down? acme-v01 (as found in /etc/examples and /etc) is 
also NXDOMAIN, for me.

Thanks for the quick reply and pointers! Have you any idea what the 
tls_write tls_read errors are? They're not triggering off pretend pear 
x1 and bogus broccoli x2 are they?

Amy!
-- 
Amelia A. Lewis                    amyzing {at} talsever.com
    Merchant, street girl, beggar, yeoman,
    king or common, man or woman,
    only two things make us human--
    sorrow and love, sorrow and love ....
                -- The Last Song of Sirit Byar

Reply via email to