1. The problem I’m having:
Hello, I’ve been trying to test the new Let’s Encrypt IP certificates using Caddy.
So far, I managed to generate the certificates, by building Caddy with the updated certmagic module, but it looks like Caddy is failing to find the certificate it just generated, instead trying to find a certificate for a private IP address (10.10.0.155).
I imagine the issue is a wrong or missing configuration in my Caddyfile, but I couldn’t figure out what it could be.
2. Error messages and/or full log output:
2025/07/22 13:54:25.978 INFO maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined
2025/07/22 13:54:25.978 INFO GOMEMLIMIT is updated {"package": "github.com/KimMachineGun/automemlimit/memlimit", "GOMEMLIMIT": 22652618342, "previous": 9223372036854775807}
2025/07/22 13:54:25.978 INFO using adjacent Caddyfile
2025/07/22 13:54:25.979 INFO adapted config to JSON {"adapter": "caddyfile"}
2025/07/22 13:54:25.980 INFO admin admin endpoint started {"address": "localhost:2019", "enforce_origin": false, "origins": ["//localhost:2019", "//[::1]:2019", "//127.0.0.1:2019"]}
2025/07/22 13:54:25.980 INFO http.auto_https server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS {"server_name": "srv0", "https_port": 443}
2025/07/22 13:54:25.980 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0x400065e900"}
2025/07/22 13:54:25.980 INFO http.auto_https enabling automatic HTTP->HTTPS redirects {"server_name": "srv0"}
2025/07/22 13:54:25.980 DEBUG http.auto_https adjusted config {"tls": {"automation":{"policies":[{"subjects":["167.234.234.130"]},{}]}}, "http": {"servers":{"remaining_auto_https_redirects":{"listen":[":80"],"routes":[{},{}]},"srv0":{"listen":[":443"],"routes":[{"handle":[{"handler":"subroute","routes":[{"handle":[{"body":"hello world","handler":"static_response"}]}]}],"terminal":true}],"tls_connection_policies":[{}],"automatic_https":{}}}}}
2025/07/22 13:54:25.981 DEBUG http starting server loop {"address": "[::]:443", "tls": true, "http3": false}
2025/07/22 13:54:25.981 INFO http enabling HTTP/3 listener {"addr": ":443"}
2025/07/22 13:54:25.981 INFO failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 7168 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.
2025/07/22 13:54:25.981 INFO http.log server running {"name": "srv0", "protocols": ["h1", "h2", "h3"]}
2025/07/22 13:54:25.981 DEBUG http starting server loop {"address": "[::]:80", "tls": false, "http3": false}
2025/07/22 13:54:25.981 WARN http HTTP/2 skipped because it requires TLS {"network": "tcp", "addr": ":80"}
2025/07/22 13:54:25.981 WARN http HTTP/3 skipped because it requires TLS {"network": "tcp", "addr": ":80"}
2025/07/22 13:54:25.981 INFO http.log server running {"name": "remaining_auto_https_redirects", "protocols": ["h1", "h2", "h3"]}
2025/07/22 13:54:25.981 INFO http enabling automatic TLS certificate management {"domains": ["167.234.234.130"]}
2025/07/22 13:54:25.981 DEBUG events event {"name": "started", "id": "1df322a4-94c1-4a02-8772-78f1d2737899", "origin": "", "data": null}
2025/07/22 13:54:25.982 INFO autosaved config (load with --resume flag) {"file": "/home/rodri/.config/caddy/autosave.json"}
2025/07/22 13:54:25.982 INFO serving initial configuration
2025/07/22 13:54:25.985 INFO tls cleaning storage unit {"storage": "FileStorage:/home/rodri/.local/share/caddy"}
2025/07/22 13:54:25.987 INFO tls.obtain acquiring lock {"identifier": "167.234.234.130"}
2025/07/22 13:54:25.987 INFO tls finished cleaning storage units
2025/07/22 13:54:25.989 INFO tls.obtain lock acquired {"identifier": "167.234.234.130"}
2025/07/22 13:54:25.989 INFO tls.obtain obtaining certificate {"identifier": "167.234.234.130"}
2025/07/22 13:54:25.989 DEBUG events event {"name": "cert_obtaining", "id": "39fb66c5-32e4-4b29-a586-a2493b1031c0", "origin": "tls", "data": {"identifier":"167.234.234.130"}}
2025/07/22 13:54:25.989 DEBUG tls created CSR {"identifiers": ["167.234.234.130"], "san_dns_names": [], "san_emails": [], "common_name": "", "extra_extensions": 0}
2025/07/22 13:54:25.990 DEBUG tls.obtain trying issuer 1/1 {"issuer": "acme-staging-v02.api.letsencrypt.org-directory"}
2025/07/22 13:54:25.990 INFO tls.issuance.acme creating new account because no account for configured email is known to us {"email": "<MY_EMAIL>@gmail.com", "ca": "https://acme-staging-v02.api.letsencrypt.org/directory", "error": "open /home/rodri/.local/share/caddy/acme/acme-staging-v02.api.letsencrypt.org-directory/users/<MY_EMAIL>@gmail.com/<MY_EMAIL>.json: no such file or directory"}
2025/07/22 13:54:25.990 INFO tls.issuance.acme ACME account has empty status; registering account with ACME server {"contact": ["mailto:<MY_EMAIL>@gmail.com"], "location": ""}
2025/07/22 13:54:25.992 INFO tls.issuance.acme creating new account because no account for configured email is known to us {"email": "<MY_EMAIL>@gmail.com", "ca": "https://acme-staging-v02.api.letsencrypt.org/directory", "error": "open /home/rodri/.local/share/caddy/acme/acme-staging-v02.api.letsencrypt.org-directory/users/<MY_EMAIL>@gmail.com/<MY_EMAIL>.json: no such file or directory"}
2025/07/22 13:54:26.495 DEBUG http request {"method": "GET", "url": "https://acme-staging-v02.api.letsencrypt.org/directory", "headers": {"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["1069"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:26 GMT"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:26.655 DEBUG http request {"method": "HEAD", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/new-nonce", "headers": {"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Cache-Control":["public, max-age=0, no-cache"],"Date":["Tue, 22 Jul 2025 13:54:26 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Replay-Nonce":["WqSL1hmcw246fP_gnwi7mpGDRBphSq241AIVgdtmVAsjLLd7RQs"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:26.823 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/new-acct", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Boulder-Requester":["214924654"],"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["236"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:26 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\"","<https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf>;rel=\"terms-of-service\""],"Location":["https://acme-staging-v02.api.letsencrypt.org/acme/acct/214924654"],"Replay-Nonce":["WqSL1hmcdcJz27syrJBDl_XyhA3l-MTYfcIZ7ene2qeYf6kvXsU"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 201}
2025/07/22 13:54:26.823 INFO tls.issuance.acme new ACME account registered {"contact": ["mailto:<MY_EMAIL>@gmail.com"], "status": "valid"}
2025/07/22 13:54:26.828 INFO tls.issuance.acme waiting on internal rate limiter {"identifiers": ["167.234.234.130"], "ca": "https://acme-staging-v02.api.letsencrypt.org/directory", "account": "<MY_EMAIL>@gmail.com"}
2025/07/22 13:54:26.828 INFO tls.issuance.acme done waiting on internal rate limiter {"identifiers": ["167.234.234.130"], "ca": "https://acme-staging-v02.api.letsencrypt.org/directory", "account": "<MY_EMAIL>@gmail.com"}
2025/07/22 13:54:26.828 INFO tls.issuance.acme using ACME account {"account_id": "https://acme-staging-v02.api.letsencrypt.org/acme/acct/214924654", "account_contact": ["mailto:<MY_EMAIL>@gmail.com"]}
2025/07/22 13:54:26.828 DEBUG creating order {"account": "https://acme-staging-v02.api.letsencrypt.org/acme/acct/214924654", "identifiers": ["167.234.234.130"]}
2025/07/22 13:54:26.998 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/new-order", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Boulder-Requester":["214924654"],"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["387"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:26 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Location":["https://acme-staging-v02.api.letsencrypt.org/acme/order/214924654/26213468404"],"Replay-Nonce":["8JsvQDukBOlWXQn0eYKlNo1g_B26NOaV10ZNAbBw9zQ_LTmA_GI"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 201}
2025/07/22 13:54:27.161 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/authz/214924654/18616207644", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Boulder-Requester":["214924654"],"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["614"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:27 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Replay-Nonce":["WqSL1hmcJ3ydUQaWW6m5Q5G4_rO9HmiKIg37zbA8pNfbjuDUSGU"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:27.161 DEBUG no solver configured {"challenge_type": "tls-alpn-01"}
2025/07/22 13:54:27.161 INFO trying to solve challenge {"identifier": "167.234.234.130", "challenge_type": "http-01", "ca": "https://acme-staging-v02.api.letsencrypt.org/directory"}
2025/07/22 13:54:27.164 DEBUG waiting for solver before continuing {"identifier": "167.234.234.130", "challenge_type": "http-01"}
2025/07/22 13:54:27.164 DEBUG done waiting for solver {"identifier": "167.234.234.130", "challenge_type": "http-01"}
2025/07/22 13:54:27.327 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/chall/214924654/18616207644/WdfcSA", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Boulder-Requester":["214924654"],"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["201"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:27 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\"","<https://acme-staging-v02.api.letsencrypt.org/acme/authz/214924654/18616207644>;rel=\"up\""],"Location":["https://acme-staging-v02.api.letsencrypt.org/acme/chall/214924654/18616207644/WdfcSA"],"Replay-Nonce":["WqSL1hmcgm384WIX_YlooRYhcouEoe0SsjBuNN7HTRD4V6Kcge4"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:27.327 DEBUG challenge accepted {"identifier": "167.234.234.130", "challenge_type": "http-01"}
2025/07/22 13:54:27.489 INFO tls.issuance.acme served key authentication {"identifier": "167.234.234.130", "challenge": "http-01", "remote": "66.133.109.36:40299", "distributed": false}
2025/07/22 13:54:27.741 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/authz/214924654/18616207644", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Boulder-Requester":["214924654"],"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["614"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:27 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Replay-Nonce":["8JsvQDukTB-PYpt7T7wuGa-DCshBtxYNr-z26EUa4AmMC2CSwGs"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:27.808 INFO tls.issuance.acme served key authentication {"identifier": "167.234.234.130", "challenge": "http-01", "remote": "3.128.29.203:56486", "distributed": false}
2025/07/22 13:54:27.872 INFO tls.issuance.acme served key authentication {"identifier": "167.234.234.130", "challenge": "http-01", "remote": "54.71.102.18:21190", "distributed": false}
2025/07/22 13:54:27.960 INFO tls.issuance.acme served key authentication {"identifier": "167.234.234.130", "challenge": "http-01", "remote": "13.51.47.159:29978", "distributed": false}
2025/07/22 13:54:28.154 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/authz/214924654/18616207644", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Boulder-Requester":["214924654"],"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["614"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:28 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Replay-Nonce":["WqSL1hmccSrqccZvrWhNh7VyS30bbHu96-VJHZmh3gbtXZVXpVI"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:28.188 INFO tls.issuance.acme served key authentication {"identifier": "167.234.234.130", "challenge": "http-01", "remote": "13.250.21.201:22114", "distributed": false}
2025/07/22 13:54:28.566 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/authz/214924654/18616207644", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Boulder-Requester":["214924654"],"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["777"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:28 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Replay-Nonce":["WqSL1hmcHo7VHCrnNy4GQesfkpgy4cX9uf12rg69tbSWaIUSzxU"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:28.567 INFO authorization finalized {"identifier": "167.234.234.130", "authz_status": "valid"}
2025/07/22 13:54:28.567 INFO validations succeeded; finalizing order {"order": "https://acme-staging-v02.api.letsencrypt.org/acme/order/214924654/26213468404"}
2025/07/22 13:54:28.733 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/finalize/214924654/26213468404", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Boulder-Requester":["214924654"],"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["390"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:28 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Location":["https://acme-staging-v02.api.letsencrypt.org/acme/order/214924654/26213468404"],"Replay-Nonce":["WqSL1hmcLEnWvuyhH4M4tFLoOjo3V-a0sLTxCV1LhRZsXkaCcoY"],"Retry-After":["3"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:31.895 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/order/214924654/26213468404", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["497"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:31 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Location":["https://acme-staging-v02.api.letsencrypt.org/acme/order/214924654/26213468404"],"Replay-Nonce":["WqSL1hmcrFFSnzvRVpq2Y94e3WQb0vP7D8HF5bTO3u8hZ8lVcAQ"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:32.058 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/cert/2cf681f03ecceb78f7f623e3503ef6c3e4d9", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["2905"],"Content-Type":["application/pem-certificate-chain"],"Date":["Tue, 22 Jul 2025 13:54:31 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\"","<https://acme-staging-v02.api.letsencrypt.org/acme/cert/2cf681f03ecceb78f7f623e3503ef6c3e4d9/1>;rel=\"alternate\""],"Replay-Nonce":["8JsvQDukBeKGsQUd43sFwGHZ_LlQdUUGfvo-TLebpVIw3b6S04Q"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:32.058 DEBUG getting renewal info {"names": []}
2025/07/22 13:54:32.222 DEBUG http request {"method": "GET", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/renewal-info/oXQaBm1Qt4YtSizBfrSNiElszRY.LPaB8D7M63j39iPjUD72w-TZ", "headers": {"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["101"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:32 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Retry-After":["21600"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:32.222 INFO got renewal info {"names": [], "window_start": "2025/07/25 19:49:48.000", "window_end": "2025/07/25 23:00:37.000", "selected_time": "2025/07/25 20:47:01.000", "recheck_after": "2025/07/22 19:54:32.222", "explanation_url": ""}
2025/07/22 13:54:32.385 DEBUG http request {"method": "POST", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/cert/2cf681f03ecceb78f7f623e3503ef6c3e4d9/1", "headers": {"Content-Type":["application/jose+json"],"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["2348"],"Content-Type":["application/pem-certificate-chain"],"Date":["Tue, 22 Jul 2025 13:54:32 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\"","<https://acme-staging-v02.api.letsencrypt.org/acme/cert/2cf681f03ecceb78f7f623e3503ef6c3e4d9/0>;rel=\"alternate\""],"Replay-Nonce":["WqSL1hmc5z4tMnk2OJWL5mVYblfYW1dOhIZe3VpJtXLO_IOe4Os"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:32.385 DEBUG getting renewal info {"names": []}
2025/07/22 13:54:32.547 DEBUG http request {"method": "GET", "url": "https://acme-staging-v02.api.letsencrypt.org/acme/renewal-info/oXQaBm1Qt4YtSizBfrSNiElszRY.LPaB8D7M63j39iPjUD72w-TZ", "headers": {"User-Agent":["Caddy/8ba7eefd-20250720 CertMagic acmez (linux; arm64)"]}, "response_headers": {"Cache-Control":["public, max-age=0, no-cache"],"Content-Length":["101"],"Content-Type":["application/json"],"Date":["Tue, 22 Jul 2025 13:54:32 GMT"],"Link":["<https://acme-staging-v02.api.letsencrypt.org/directory>;rel=\"index\""],"Retry-After":["21600"],"Server":["nginx"],"Strict-Transport-Security":["max-age=604800"],"X-Frame-Options":["DENY"]}, "status_code": 200}
2025/07/22 13:54:32.548 INFO got renewal info {"names": [], "window_start": "2025/07/25 19:49:48.000", "window_end": "2025/07/25 23:00:37.000", "selected_time": "2025/07/25 21:35:07.000", "recheck_after": "2025/07/22 19:54:32.548", "explanation_url": ""}
2025/07/22 13:54:32.548 INFO successfully downloaded available certificate chains {"count": 2, "first_url": "https://acme-staging-v02.api.letsencrypt.org/acme/cert/2cf681f03ecceb78f7f623e3503ef6c3e4d9"}
2025/07/22 13:54:32.548 DEBUG tls.issuance.acme selected certificate chain {"url": "https://acme-staging-v02.api.letsencrypt.org/acme/cert/2cf681f03ecceb78f7f623e3503ef6c3e4d9"}
2025/07/22 13:54:32.555 INFO tls.obtain certificate obtained successfully {"identifier": "167.234.234.130", "issuer": "acme-staging-v02.api.letsencrypt.org-directory"}
2025/07/22 13:54:32.555 DEBUG events event {"name": "cert_obtained", "id": "fd526262-7b20-4eec-8de1-d48521a1c165", "origin": "tls", "data": {"certificate_path":"certificates/acme-staging-v02.api.letsencrypt.org-directory/167.234.234.130/167.234.234.130.crt","csr_pem":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlIY01JR0VBZ0VBTUFBd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRNDNWVU9VMjlacGVvdApPWXBpbXdGdjY5SjJFRGRhZFZ0cGpsUURKZEFDZ05laHh0cWhoR0M5a1pKVUkzeTYxTUdtV0h0cnI3RDI4bFlZCkJlQXBveFRFb0NJd0lBWUpLb1pJaHZjTkFRa09NUk13RVRBUEJnTlZIUkVFQ0RBR2h3U242dXFDTUFvR0NDcUcKU000OUJBTUNBMGNBTUVRQ0lIY0ZFOG84UkF3dmpqM3I1VWltczU5aWtjM3pxVkZYMURTZjRGenZWZnhjQWlBUAowT09oWmx4RjNISUt2SitKOGp6N0lLYTdWVnNTYWx5aC9NcmFndFY1S3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0K","identifier":"167.234.234.130","issuer":"acme-staging-v02.api.letsencrypt.org-directory","metadata_path":"certificates/acme-staging-v02.api.letsencrypt.org-directory/167.234.234.130/167.234.234.130.json","private_key_path":"certificates/acme-staging-v02.api.letsencrypt.org-directory/167.234.234.130/167.234.234.130.key","renewal":false,"storage_path":"certificates/acme-staging-v02.api.letsencrypt.org-directory/167.234.234.130"}}
2025/07/22 13:54:32.556 INFO tls.obtain releasing lock {"identifier": "167.234.234.130"}
2025/07/22 13:54:32.556 WARN tls stapling OCSP {"identifiers": ["167.234.234.130"]}
2025/07/22 13:54:32.556 DEBUG tls.cache added certificate to cache {"subjects": ["167.234.234.130"], "expiration": "2025/07/29 04:55:58.000", "managed": true, "issuer_key": "acme-staging-v02.api.letsencrypt.org-directory", "hash": "48f50113d3fd044198fae6dacc372d7b2001dcbdcba660874456041050bf5f30", "cache_size": 1, "cache_capacity": 10000}
2025/07/22 13:54:32.556 DEBUG events event {"name": "cached_managed_cert", "id": "d9d00530-5b10-4834-91ef-ae2cc3597b58", "origin": "tls", "data": {"sans":["167.234.234.130"]}}
2025/07/22 13:54:38.528 DEBUG events event {"name": "tls_get_certificate", "id": "a4593fd5-6339-46f9-8d0f-bfdd3dd266b1", "origin": "tls", "data": {"client_hello":{"CipherSuites":[51914,4865,4866,4867,49195,49199,49196,49200,52393,52392,49171,49172,156,157,47,53],"ServerName":"","SupportedCurves":[64250,4588,29,23,24],"SupportedPoints":"AA==","SignatureSchemes":[1027,2052,1025,1283,2053,1281,2054,1537],"SupportedProtos":["h2","http/1.1"],"SupportedVersions":[43690,772,771],"RemoteAddr":{"IP":"<MY_IP>","Port":55493,"Zone":""},"LocalAddr":{"IP":"10.10.0.155","Port":443,"Zone":""}}}}
2025/07/22 13:54:38.528 DEBUG tls.handshake no matching certificates and no custom selection logic {"identifier": "10.10.0.155"}
2025/07/22 13:54:38.528 DEBUG tls.handshake no certificate matching TLS ClientHello {"remote_ip": "<MY_IP>", "remote_port": "55493", "server_name": "", "remote": "<MY_IP>:55493", "identifier": "10.10.0.155", "cipher_suites": [51914, 4865, 4866, 4867, 49195, 49199, 49196, 49200, 52393, 52392, 49171, 49172, 156, 157, 47, 53], "cert_cache_fill": 0.0001, "load_or_obtain_if_necessary": true, "on_demand": false}
2025/07/22 13:54:38.528 DEBUG http.stdlib http: TLS handshake error from <MY_IP>:55493: no certificate available for '10.10.0.155'
2025/07/22 13:54:38.561 DEBUG events event {"name": "tls_get_certificate", "id": "bcb0b351-001c-4f2c-a327-09e18c7c51e7", "origin": "tls", "data": {"client_hello":{"CipherSuites":[10794,4865,4866,4867,49195,49199,49196,49200,52393,52392,49171,49172,156,157,47,53],"ServerName":"","SupportedCurves":[10794,4588,29,23,24],"SupportedPoints":"AA==","SignatureSchemes":[1027,2052,1025,1283,2053,1281,2054,1537],"SupportedProtos":["h2","http/1.1"],"SupportedVersions":[19018,772,771],"RemoteAddr":{"IP":"<MY_IP>","Port":55494,"Zone":""},"LocalAddr":{"IP":"10.10.0.155","Port":443,"Zone":""}}}}
2025/07/22 13:54:38.561 DEBUG tls.handshake no matching certificates and no custom selection logic {"identifier": "10.10.0.155"}
2025/07/22 13:54:38.561 DEBUG tls.handshake no certificate matching TLS ClientHello {"remote_ip": "<MY_IP>", "remote_port": "55494", "server_name": "", "remote": "<MY_IP>:55494", "identifier": "10.10.0.155", "cipher_suites": [10794, 4865, 4866, 4867, 49195, 49199, 49196, 49200, 52393, 52392, 49171, 49172, 156, 157, 47, 53], "cert_cache_fill": 0.0001, "load_or_obtain_if_necessary": true, "on_demand": false}
2025/07/22 13:54:38.561 DEBUG http.stdlib http: TLS handshake error from <MY_IP>:55494: no certificate available for '10.10.0.155'
3. Caddy version:
8ba7eefd0767228c87004a3c8c13c5712b680ec4+modified (20 Jul 25 21:40 UTC)
4. How I installed and ran Caddy:
I built Caddy from source, following instructions in the Github repo.
a. System environment:
Debian 12 on ARM64.
Go version go1.24.5.
b. Command:
caddy run
c. Service/unit/compose file:
N/A
d. My complete Caddy config:
{
email <MY-EMAIL>@gmail.com
debug
}
https://167.234.234.130 {
respond "hello world"
tls {
issuer acme {
dir https://acme-staging-v02.api.letsencrypt.org/directory
profile shortlived
disable_tlsalpn_challenge
}
}
}