lets-debug-helper
A small command-line wrapper around the Let's Debug public API. Hand it a domain name and it submits a diagnostic test, polls until the result is ready, and prints any problems found in a readable, color-coded format. Useful when you're trying to figure out why Let's Encrypt won't issue a certificate for a domain you control.
Install
pip install lets-debug-helper
Requires Python 3.13+.
Usage
lets-debug example.com
Wildcards are supported:
lets-debug "*.example.com"
For full options:
lets-debug --help
Example output
When the domain has issues:
Checking Domain: example.com
Testing ID: 2916375
URL: https://letsdebug.net/example.com/2916375
Waiting for test to complete....
Warning Type: IssueFromLetsEncrypt
Explanation: A test authorization for example.com to the Let's Encrypt staging
service has revealed issues that may prevent any certificate for
this domain being issued.
Details: Error creating new order :: Cannot issue for "example.com": ...
Severity: Error
When everything checks out:
Checking Domain: yourdomain.com
Testing ID: 2916380
URL: https://letsdebug.net/yourdomain.com/2916380
Waiting for test to complete....
All OK!
No issues were found with yourdomain.com. If you are having problems with
creating an SSL certificate, please visit the Let's Encrypt Community forums
and post a question there.
https://community.letsencrypt.org/
What it checks
The Let's Debug service runs a battery of pre-flight checks that frequently catch the real reasons certificate issuance fails. A non-exhaustive list:
- DNS resolution and authoritative-NS sanity
- CAA records that disallow Let's Encrypt
- Public-suffix-list / domain blocklist hits
- HTTP-01 reachability (port 80 open, no redirect loops, correct content type)
- TXT record state for DNS-01 (when applicable)
- Cloudflare / CDN-fronted SSL configuration warnings
- IPv4/IPv6 reachability mismatches
- Rate-limit-state hints from Let's Encrypt's staging environment
For the full list and underlying logic, see the Let's Debug source.
Exit codes
| Code | Meaning |
|---|---|
0 |
Test completed successfully (regardless of whether problems were reported) |
1 |
API error, JSON decode error, or test did not complete within 60 seconds |
Contributing
See CONTRIBUTING.md for dev setup, the make targets, and the release process.
License
MIT.
Acknowledgements
This tool is just a thin client. All the diagnostic work is done by the Let's Debug project — please consider supporting them.
Release files for lets-debug-helper 1.6.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lets_debug_helper-1.6.11.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lets_debug_helper-1.6.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.1 kB
Release files / lets_debug_helper-1.6.11.tar.gz
| Download URL | lets_debug_helper-1.6.11.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a37dff49f772d1662ad0ae9c2646df16bc0444c7300e927fee3845b174f1ccc7
|
|
BLAKE2b-256 checksum How to use checksums |
05eff1af370875b5136b75eb22af7da4b4efcbc6ab22c987639c320d9b0f7809
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.3 CPython/3.13.15 Linux/6.17.0-1022-azure
|
Release files / lets_debug_helper-1.6.11-py3-none-any.whl
| Download URL | lets_debug_helper-1.6.11-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4dc534f9f621e734c5eeeac61a7949b73877aa3ab31f877bcaf77604ce2498fd
|
|
BLAKE2b-256 checksum How to use checksums |
f633517f6efd0c824224ea9cb07b8c3effbd5cfc3b517aa58de7233e1f81066b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.3 CPython/3.13.15 Linux/6.17.0-1022-azure
|