Thanks for the response, Florian, On Tue, 31 Dec 2024 06:55:26 +0100, Florian Obser wrote: > On 2024-12-30 19:44 -05, Amelia A Lewis <amyz...@talsever.com> wrote: >> acme-client: https://acme-staging.api.letsencrypt.org/directory: bad >> comm >> acme-client: bad exit: netproc(39958): 1 > > your acme-client.conf is about 5.5 years too old: > https://cvsweb.openbsd.org/src/etc/examples/acme-client.conf#rev1.2 > > The correct staging url is > https://acme-staging-v02.api.letsencrypt.org/directory
I worked that out, with updated results: $ 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 I think that this is because I experimented with it in 2019 or so (which would have gotten the created copy that I modified further on taking it up again Sunday). My /etc/examples/acme-client.conf is, like yours, pointing at acme-v02.api and acme-staging-v02.api, and this looks like my major bit of stupidity, overlooking the difference between what I had and what was in examples. Here's an updated-just now minimized version, using the specified hostnames (and not the canonical hostnames, which in a moment of less fatigue occurs to me could be the reason it gave the response above last night, so a second bit of working-too-late fatigue). > If your acme-client is the same vintage you probably need to update, I > don't think it will be able to talk to a v2 api endpoint. I think I was stupid again, using the staging.api hostname. $ doas acme-client -nv simmonpatch.com doas (amyz...@tserig.simmonpatch.com) password: authority letsencrypt { api url "https://acme-v01.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-privkey.pem" rsa } authority letsencrypt-staging { api url "https://acme-staging-v02.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-staging-privkey.pem" rsa } domain simmonpatch.com { domain name "simmonpatch.com" alternative names { tserig.simmonpatch.com } domain key "/etc/ssl/private/leo-simmonpatch.com.key" rsa domain full chain certificate "/etc/ssl/leo-simmonpatch.com.fullchain.pem" sign with "letsencrypt-staging" } and this looks more promising, as loads of debugging scrolls past, but dammit! One more request for a look: is there anything sus in the above or in the below output? I'll have to look at it more carefully after coffee, but I wouldn't mind being given a cheat code. The original output is very long, so let me snip three lines from the bottom first, then the whole output in order. The whole thing has a bunch of lines wrapped (mua wraps them on send), but I figured better to be complete, and not to try sending an attachment. Okay, original very long output had three alt names, two of them 'service' style aliases for the A record which is the sole alt name above (both the domain A record and the machine name A record have been in DNS for five years or more at that IP; not so the CName-s, which were changed recently). Same three final lines (different numbers in 'netproc(nnnnnn)'), short form is the latest run of three (domain+3 alts, domain+2 alts, domain+1 alt above and full output below). -- last three -- acme-client: order.status 2 acme-client: unhandled status: 2 acme-client: bad exit: netproc(68704): 1 -- whole thing (third run, using-- $ doas acme-client -vv 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-v02.api.letsencrypt.org/directory: directories acme-client: acme-staging-v02.api.letsencrypt.org: DNS: 172.65.46.172 acme-client: transfer buffer: [{ "FIupg6fYm1w": "https://community.letsencrypt.org/t/adding-random-entries-to-the-directory/33417", "keyChange": "https://acme-staging-v02.api.letsencrypt.org/acme/key-change", "meta": { "caaIdentities": [ "letsencrypt.org" ], "termsOfService": "https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf", "website": "https://letsencrypt.org/docs/staging-environment/" }, "newAccount": "https://acme-staging-v02.api.letsencrypt.org/acme/new-acct", "newNonce": "https://acme-staging-v02.api.letsencrypt.org/acme/new-nonce", "newOrder": "https://acme-staging-v02.api.letsencrypt.org/acme/new-order", "renewalInfo": "https://acme-staging-v02.api.letsencrypt.org/draft-ietf-acme-ari-03/renewalInfo", "revokeCert": "https://acme-staging-v02.api.letsencrypt.org/acme/revoke-cert" }] (820 bytes) acme-client: transfer buffer: [{ "key": { "kty": "RSA", "n": "wSD4AguvgUpDYY5_H14dbVvAVLQMkzNamr8svtf35mKpIT0bNJzRtDPoFg2dq_FyDQVWKbqa5dzCKo50526q9YXNEMS8IpIFxapNByaLo4QByVfghziikPyZYPnrcWS40lXQsNARN7crO89eqneJOdThT0BglDqPowso1K9QWAnOXrieqRAqu_8laG3WtBBb0MIMKI_qeakWwVrno_WCk973O4JiMBheHxsY8ikSmd5P1qtU9wIio9hVWqjzSVgdtpIJL7IaXg0uD2nEaZRf8KMBGz0pnyuMpd1rpsQozKE0o3JAZ-22qXaCFf57kjn7RwiXAEgBv2ZaiUAehroN6al8FzqtXkQdBncmQh8XmqT6FkRoF0kbhRTZw4lhLc8h2GlzDL-ZPcocmYUUyUzLQXdadv4fDXwlZ3WDyC0L3ZFZowYJZBivtgBZyBGRWp2oPMMqbn3i9DNycuZfe51VIjnbdKpdxqj7yPc-ot6hsuCVByHPVr2YPfx4j4YSZAp_XC_wPoDmfFrI4w8Gy6tq1MkG6zFSkpE3MSX-_8hi-r8sj7KXmgpUIeLNft2pXTCAppxbn8XZAjwzpr0QKEQ7P19fp0T8dzhSCWzYh5DAxYdF0S4yWVaT2f7GHiuZmza9TexzDlbV1kbjEyTMzG5WwwNvGzZPs8P5m0M0IO9HiUE", "e": "AQAB" }, "createdAt": "2024-12-31T12:27:50Z", "status": "valid" }] (808 bytes) acme-client: transfer buffer: [{ "status": "ready", "expires": "2025-01-07T12:52:07Z", "identifiers": [ { "type": "dns", "value": "simmonpatch.com" }, { "type": "dns", "value": "tserig.simmonpatch.com" } ], "authorizations": [ "https://acme-staging-v02.api.letsencrypt.org/acme/authz/178256864/15553248944", "https://acme-staging-v02.api.letsencrypt.org/acme/authz/178256864/15553248954" ], "finalize": "https://acme-staging-v02.api.letsencrypt.org/acme/finalize/178256864/21691984374" }] (518 bytes) acme-client: https://acme-staging-v02.api.letsencrypt.org/acme/finalize/178256864/21691984374: certificate acme-client: transfer buffer: [{ "status": "processing", "expires": "2025-01-07T12:52:07Z", "identifiers": [ { "type": "dns", "value": "simmonpatch.com" }, { "type": "dns", "value": "tserig.simmonpatch.com" } ], "authorizations": [ "https://acme-staging-v02.api.letsencrypt.org/acme/authz/178256864/15553248944", "https://acme-staging-v02.api.letsencrypt.org/acme/authz/178256864/15553248954" ], "finalize": "https://acme-staging-v02.api.letsencrypt.org/acme/finalize/178256864/21691984374" }] (523 bytes) acme-client: transfer buffer: [{ "status": "processing", "expires": "2025-01-07T12:52:07Z", "identifiers": [ { "type": "dns", "value": "simmonpatch.com" }, { "type": "dns", "value": "tserig.simmonpatch.com" } ], "authorizations": [ "https://acme-staging-v02.api.letsencrypt.org/acme/authz/178256864/15553248944", "https://acme-staging-v02.api.letsencrypt.org/acme/authz/178256864/15553248954" ], "finalize": "https://acme-staging-v02.api.letsencrypt.org/acme/finalize/178256864/21691984374" }] (523 bytes) acme-client: order.status 2 acme-client: unhandled status: 2 acme-client: bad exit: netproc(66411): 1 Thanks for the help, and if you've gotten to here, thanks for looking through the above (all three complete attempts are in scrollback, if it's more useful to see the sequence, but all three in end in order.status 2 / unhandled status: 2 / bad exit: netproc following "finalize"). I can send them if someone needs to see them to diagnose. Do I just need to wait until the expires timestamp (2025-01-07T12:52:07Z) or something, perhaps? Amy!