No changes until I started looking for the broken path. I have reverted them. I'd rather not share nginx.conf. But here is the tail of the letsencrypt log
2026-01-07 16:24:23,102:DEBUG:acme.client:JWS payload:
b'{}'
2026-01-07 16:24:23,108:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/chall/473966670/639428230646/a_2gZA:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvNDczOTY2NjcwIiwgIm5vbmNlIjogIklpanphZGxTb3lLTXNPZnF4NVE1bHVKNERfSzk2dWF4a1B5NXZCamdwSlhKVU40bE1HSSIsICJ1cmwiOiAiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvY2hhbGwvNDczOTY2NjcwLzYzOTQyODIzMDY0Ni9hXzJnWkEifQ",
"signature": "c5a2nZBsj6gyvb64hznNU9MKKHxk8xRIlbo-PheGcaeO6F3gVnoEUB2JRWRKP78iIU9o7P7qdSBG1yOIojOrO8bk2CuoTKdiq3Vi7fzBE2F_bXYDUjFMqkB4siFPriSr1MCh-7u1A5-PbAj-hA2rSG_zNIkENU0r8WFxW0KCzI6RiJA4p8vkO7FqBpQD_amBBmD2PVLKhVv34srfmfLnwOPAr-Tn1v_n5t-Hgy1me7a_v7nDpuXX08G4tvimTnIQ-SO6N4zKAkHB5xs3wEzHUjAgKcmEJ-TQG_qkELMFpHGpH2ZjBSyv1xRK_aPPev7QSPv1tQ4OopFjPJEwmpPuLQ",
"payload": "e30"
}
2026-01-07 16:24:23,166:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/chall/473966670/639428230646/a_2gZA HTTP/1.1" 200 194
2026-01-07 16:24:23,167:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Wed, 07 Jan 2026 22:24:23 GMT
Content-Type: application/json
Content-Length: 194
Connection: keep-alive
Boulder-Requester: 473966670
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index", <https://acme-v02.api.letsencrypt.org/acme/authz/473966670/639428230646>;rel="up"
Location: https://acme-v02.api.letsencrypt.org/acme/chall/473966670/639428230646/a_2gZA
Replay-Nonce: IijzadlSiMz6O0fEHALjXA6tTNnjcM2ZxyDzTyNIiKDkP62zOGY
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"type": "http-01",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall/473966670/639428230646/a_2gZA",
"status": "pending",
"token": "PDvWAv_GQNdjYA8gifhYSVYzE1tX7eR0tHsmwObgMpo"
}
2026-01-07 16:24:23,168:DEBUG:acme.client:Storing nonce: IijzadlSiMz6O0fEHALjXA6tTNnjcM2ZxyDzTyNIiKDkP62zOGY
2026-01-07 16:24:23,169:INFO:certbot._internal.auth_handler:Waiting for verification...
2026-01-07 16:24:24,169:DEBUG:acme.client:JWS payload:
b''
2026-01-07 16:24:24,173:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/authz/473966670/639428230646:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvNDczOTY2NjcwIiwgIm5vbmNlIjogIklpanphZGxTaU16Nk8wZkVIQUxqWEE2dFRObmpjTTJaeHlEelR5TklpS0RrUDYyek9HWSIsICJ1cmwiOiAiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvYXV0aHovNDczOTY2NjcwLzYzOTQyODIzMDY0NiJ9",
"signature": "arACGymgiuRfrqIzSC_ABiPhTx7En-3jlrBa272qS8dEUfpxfStdnXUdMzi2bBYCe_4_EoPzYIs4sGh5pr9zds0PE72X5prKSjVRIsMbfas7Fug0MPPhz3DOjPg54I1bFIZLnVGQMIbGvG9p7lKOOtCpxMCkflHKc6R5PuIiyGoMSdw-8PmwLG2U23hgwMi58wGOOYq4YCrZWHC0scF4PsfO58GEv8Sfcs7fH0Z_-cmIosV8-rBPy0LMFvPOV-ldm3uh45sxzY3FdxSuUgDu8vljweoPfiVaOtmLX37viFRG16COLP_6gDNpfDf15R1V7FG2588Lq95MIfU3KZ2Bxw",
"payload": ""
}
2026-01-07 16:24:24,229:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/authz/473966670/639428230646 HTTP/1.1" 200 1058
2026-01-07 16:24:24,230:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Wed, 07 Jan 2026 22:24:24 GMT
Content-Type: application/json
Content-Length: 1058
Connection: keep-alive
Boulder-Requester: 473966670
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Replay-Nonce: IijzadlSVJVBrOUQEbgItMclQjOqbdwo-4T95ZJVwrHOSvaWaRc
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"identifier": {
"type": "dns",
"value": "wx.schamschula.com"
},
"status": "invalid",
"expires": "2026-01-14T22:24:21Z",
"challenges": [
{
"type": "http-01",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall/473966670/639428230646/a_2gZA",
"status": "invalid",
"validated": "2026-01-07T22:24:23Z",
"error": {
"type": "urn:ietf:params:acme:error:connection",
"detail": "173.25.40.112: Fetching http://wx.schamschula.com/.well-known/acme-challenge/PDvWAv_GQNdjYA8gifhYSVYzE1tX7eR0tHsmwObgMpo: Error getting validation data",
"status": 400
},
"token": "PDvWAv_GQNdjYA8gifhYSVYzE1tX7eR0tHsmwObgMpo",
"validationRecord": [
{
"url": "http://wx.schamschula.com/.well-known/acme-challenge/PDvWAv_GQNdjYA8gifhYSVYzE1tX7eR0tHsmwObgMpo",
"hostname": "wx.schamschula.com",
"port": "80",
"addressesResolved": [
"173.25.40.112"
],
"addressUsed": "173.25.40.112"
}
]
}
]
}
2026-01-07 16:24:24,230:DEBUG:acme.client:Storing nonce: IijzadlSVJVBrOUQEbgItMclQjOqbdwo-4T95ZJVwrHOSvaWaRc
2026-01-07 16:24:24,231:INFO:certbot._internal.auth_handler:Challenge failed for domain wx.schamschula.com
2026-01-07 16:24:24,232:INFO:certbot._internal.auth_handler:http-01 challenge for wx.schamschula.com
2026-01-07 16:24:24,232:DEBUG:certbot._internal.display.obj:Notifying user:
Certbot failed to authenticate some domains (authenticator: nginx). The Certificate Authority reported these problems:
Domain: wx.schamschula.com
Type: connection
Detail: 173.25.40.112: Fetching http://wx.schamschula.com/.well-known/acme-challenge/PDvWAv_GQNdjYA8gifhYSVYzE1tX7eR0tHsmwObgMpo: Error getting validation data
Hint: The Certificate Authority failed to verify the temporary nginx configuration changes made by Certbot. Ensure the listed domains point to this nginx server and that it is accessible from the internet.
2026-01-07 16:24:24,235:DEBUG:certbot._internal.error_handler:Encountered exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/auth_handler.py", line 108, in handle_authorizations
self._poll_authorizations(authzrs, max_retries, max_time_mins, best_effort)
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/auth_handler.py", line 212, in _poll_authorizations
raise errors.AuthorizationError('Some challenges have failed.')
certbot.errors.AuthorizationError: Some challenges have failed.
2026-01-07 16:24:24,235:DEBUG:certbot._internal.error_handler:Calling registered functions
2026-01-07 16:24:24,235:INFO:certbot._internal.auth_handler:Cleaning up challenges
2026-01-07 16:24:26,314:ERROR:certbot._internal.renewal:Failed to renew certificate wx.schamschula.com with error: Some challenges have failed.
2026-01-07 16:24:26,321:DEBUG:certbot._internal.renewal:Traceback was:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/renewal.py", line 667, in handle_renewal_request
main.renew_cert(lineage_config, plugins, renewal_candidate)
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/main.py", line 1535, in renew_cert
renewed_lineage = _get_and_save_cert(le_client, config, lineage=lineage)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/main.py", line 131, in _get_and_save_cert
renewal.renew_cert(config, domains, le_client, lineage)
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/renewal.py", line 520, in renew_cert
new_cert, new_chain, new_key, _ = le_client.obtain_certificate(domains, new_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/client.py", line 430, in obtain_certificate
orderr = self._get_order_and_authorizations(csr.data, self.config.allow_subset_of_names)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/client.py", line 508, in _get_order_and_authorizations
authzr = self.auth_handler.handle_authorizations(orderr, self.config, best_effort)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/auth_handler.py", line 108, in handle_authorizations
self._poll_authorizations(authzrs, max_retries, max_time_mins, best_effort)
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/auth_handler.py", line 212, in _poll_authorizations
raise errors.AuthorizationError('Some challenges have failed.')
certbot.errors.AuthorizationError: Some challenges have failed.
2026-01-07 16:24:26,323:DEBUG:certbot._internal.display.obj:Notifying user:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2026-01-07 16:24:26,323:ERROR:certbot._internal.renewal:All renewals failed. The following certificates could not be renewed:
2026-01-07 16:24:26,323:ERROR:certbot._internal.renewal: /usr/local/etc/letsencrypt/live/wx.schamschula.com/fullchain.pem (failure)
2026-01-07 16:24:26,324:DEBUG:certbot._internal.display.obj:Notifying user: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2026-01-07 16:24:26,324:DEBUG:certbot._internal.log:Exiting abnormally:
Traceback (most recent call last):
File "/usr/local/bin/certbot", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/local/lib/python3.11/site-packages/certbot/main.py", line 19, in main
return internal_main.main(cli_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/main.py", line 1877, in main
return config.func(config, plugins)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/main.py", line 1623, in renew
renewal.handle_renewal_request(config)
File "/usr/local/lib/python3.11/site-packages/certbot/_internal/renewal.py", line 697, in handle_renewal_request
raise errors.Error(
certbot.errors.Error: 1 renew failure(s), 0 parse failure(s)
2026-01-07 16:24:26,327:ERROR:certbot._internal.log:1 renew failure(s), 0 parse failure(s)