First of all, thanks to both of you for your insights. And yes, I did use the revoke command 'acme.sh --revoke' yesterday which was a flub I regret. But I had never encountered this with acme.sh before and I acted before thinking. Also, please know that I changed the private key prior to updating relay-link.net.
I suspect the 'something wrong' with preciselyparrots.com was caused by the combination of acme.sh's newly emerged functionality issue and my own actions. All I've ever had is a single cert and a csr for each domain and of course the key file. The certs are only 'pointed to' one time in the vhost.conf file and it is of course referenced only once in the httpd.conf file. There's nothing else pointing to any of the certs and no other certs that I'm aware of. So if there are more certs hiding somewhere and they are somehow accessible to apache, I've never seen them. And how would they all become renewed with a single renewal effort every 3 months? But who knows... stranger things have turned out to be true.
And actually, I think the manual request method may end up working for preciselyparrots.com once the block has expired. I'll try and explain why.
Another domain hosted on the same box was in the exact same condition yesterday after acme.sh got through with it. That domain is shellprox.net. It had expired on Feb 13 but yesterday acme.sh was reporting that it was NOT due to expire until mid-April. There was thus nothing more I could think of to do with the situation utilizing acme.sh and I decided to put off trying the manual method.
Well, that was until I got a few minutes a short time ago today. About an hour ago, I successfully updated the cert for shellprox.net via the gethttpsforfree website's manual cert renewal method. The session went very smoothly - like it always had before I started using acme.sh (which last year worked wonderfully - and was much faster!) So that's why I'm guessing I may not have any problem updating preciselyparrots.com either.
Here's a question for you pertaining to the message pasted below:
Why does it state to retry after "2023-02-17" if I really have to wait 7 days (ie, 168 hours)? I interpret the message text below to mean only that (5) certs were issued in the last 168 hours and that I can try again after tomorrow (2-17-2023). If they don't mean that then I have to say they worded the message incorrectly.
[Wed Feb 15 19:25:05 CST 2023] Create new order error. Le_OrderFinalize not found. {
"type": "urn:ietf:params:acme:error:rateLimited","detail": "Error creating new order :: too many certificates (5) already issued for this exact set of domains in the last 168 hours: preciselyparrots.com,www.preciselyparrots.com, retry after 2023-02-17T09:27:54Z: see https://letsencrypt.org/docs/duplicate-certificate-
limit/",
"status": 429
}
As for why this acme.sh thing happened... my observations, questions, as well as some conclusions (albeit perhaps not all of those are correct) follow with some text output examples:
[root@eccentric ~ 08:58:21]$ acme.sh --issue -d shellprox.net -d www.shellprox.net --server letsencrypt --standalone
[Thu Feb 16 08:58:24 CST 2023] Domains not changed.
[Thu Feb 16 08:58:24 CST 2023] Skip, Next renewal time is: 2023-04-15T23:23:19Z
As you can see, the acme.sh script/process thinks the cert's validation period is still current.
But web browsers report it as being this:
Issued On Tuesday, November 15, 2022 at 8:23:57 AM
Expires On Monday, February 13, 2023 at 8:23:56 AM
...and of course SSL won't load because it truly has expired!
So since acme.sh thinks the cert is still current, it renders the "Add '--force' to force to renew" message when it's executed.
So this is what happens when I do that:
[root@eccentric ~ 08:58:50]$ acme.sh --issue -d shellprox.net -d www.shellprox.net --server letsencrypt --standalone --force
[Thu Feb 16 08:58:53 CST 2023] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Thu Feb 16 08:58:53 CST 2023] Standalone mode.
[Thu Feb 16 08:58:55 CST 2023] Standalone mode.
[Thu Feb 16 08:58:56 CST 2023] Multi domain='DNS:shellprox.net,DNS:www.shellprox.net'
[Thu Feb 16 08:58:56 CST 2023] Getting domain auth token for each domain
[Thu Feb 16 08:58:58 CST 2023] Getting webroot for domain='shellprox.net'
[Thu Feb 16 08:58:58 CST 2023] Getting webroot for domain='www.shellprox.net'
[Thu Feb 16 08:58:58 CST 2023] shellprox.net is already verified, skip http-01.
[Thu Feb 16 08:58:58 CST 2023] www.shellprox.net is already verified, skip http-01.
[Thu Feb 16 08:58:58 CST 2023] Verify finished, start to sign.
[Thu Feb 16 08:58:58 CST 2023] Lets finalize the order.
[Thu Feb 16 08:58:58 CST 2023] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/533092826/165140011936'
[Thu Feb 16 08:58:58 CST 2023] Downloading cert.
[Thu Feb 16 08:58:58 CST 2023] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/0382463d5f24fa80a963d96d06906c5bf96e'
[Thu Feb 16 08:58:59 CST 2023] Cert success.
Note the following lines:
shellprox.net is already verified, skip http-01.
www.shellprox.net is already verified, skip http-01.
For comparison, here's what it should do and what it used to do after a cert had expired:
[root@eccentric ~ 13:31:11]$ acme.sh --issue -d shellprox.net -d www.shellprox.net --server letsencrypt --standalone
[Sat May 7 13:31:14 CDT 2022] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Sat May 7 13:31:14 CDT 2022] Standalone mode.
[Sat May 7 13:31:15 CDT 2022] Standalone mode.
[Sat May 7 13:31:15 CDT 2022] Multi domain='DNS:shellprox.net,DNS:www.shellprox.net'
[Sat May 7 13:31:15 CDT 2022] Getting domain auth token for each domain
[Sat May 7 13:31:17 CDT 2022] Getting webroot for domain='shellprox.net'
[Sat May 7 13:31:17 CDT 2022] Getting webroot for domain='www.shellprox.net'
[Sat May 7 13:31:17 CDT 2022] Verifying: shellprox.net
[Sat May 7 13:31:17 CDT 2022] Standalone mode server
[Sat May 7 13:31:18 CDT 2022] Pending, The CA is processing your order, please just wait. (1/30)
[Sat May 7 13:31:22 CDT 2022] Success
[Sat May 7 13:31:22 CDT 2022] Verifying: www.shellprox.net
[Sat May 7 13:31:22 CDT 2022] Standalone mode server
[Sat May 7 13:31:23 CDT 2022] Pending, The CA is processing your order, please just wait. (1/30)
[Sat May 7 13:31:26 CDT 2022] Success
[Sat May 7 13:31:26 CDT 2022] Verify finished, start to sign.
[Sat May 7 13:31:26 CDT 2022] Lets finalize the order.
So this new flawed detection and 'skipping' behavior from acme.sh seems to indicate that now for whatever reason it is creating new files, but they contain the same old data as that in the expired certs - which it's convinced are current for some reason.
Once again, I didn't change anything on the server and acme.sh never demonstrated this problem before yesterday. Thankfully, though, the gethttpsforfree manual request page realizes (or perhaps doesn't check) that the certs have actually expired so it renders new ones properly (and guess what? They work!) So We'll see.