14 KiB
Executable File
Manual DNS Provider Guide
Overview
The Manual DNS Provider allows you to obtain SSL/TLS certificates using the ACME DNS-01 challenge when your DNS provider is not directly supported by Charon. Instead of automating DNS record creation, Charon displays the required TXT record details for you to create manually at your DNS provider.
When to Use Manual DNS
Use the Manual DNS Provider when:
- Your DNS provider is not in the supported providers list
- You need a one-time certificate for testing or development
- You want to verify your DNS setup before configuring automated providers
- Your organization requires manual approval for DNS changes
How It Works
- You request a certificate for your domain (e.g.,
*.example.com) - Charon generates the DNS challenge and displays the TXT record details
- You create the TXT record at your DNS provider
- You click "Verify" to confirm the record exists
- Charon completes the ACME challenge and issues the certificate
Prerequisites
Before using the Manual DNS Provider, ensure you have:
- DNS Management Access: Login credentials for your DNS provider's control panel
- Domain Ownership: Administrative access to the domain you want to secure
- Time Availability: The challenge must be completed within 10 minutes
- Charon Setup: A running Charon instance with the encryption key configured
Setup Guide
Step 1: Add the Manual DNS Provider
- Log in to your Charon dashboard
- Navigate to Settings → DNS Providers
- Click Add Provider
- Select Manual (No Automation) from the provider list
Step 2: Configure Provider Settings
Fill in the configuration form:
| Field | Description | Recommended Value |
|---|---|---|
| Provider Name | A descriptive name for this provider | "Manual DNS" |
| Challenge Timeout | Time (in minutes) to complete the challenge | 10 |
Click Save to create the provider.
Step 3: Create a Proxy Host with Manual DNS
- Navigate to Proxy Hosts
- Click Add Proxy Host
- Enter your domain (e.g.,
*.example.comfor wildcard) - Select your Manual DNS provider
- Configure other proxy settings as needed
- Click Save
Charon will begin the certificate request and display the Manual DNS Challenge interface.
Using Manual DNS Challenges
Understanding the Challenge Interface
When you request a certificate using the Manual DNS provider, Charon displays a challenge screen:
┌─────────────────────────────────────────────────────────────────────┐
│ Manual DNS Challenge │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Certificate Request: *.example.com │
│ │
│ CREATE THIS TXT RECORD AT YOUR DNS PROVIDER: │
│ │
│ Record Name: _acme-challenge.example.com [Copy] │
│ Record Type: TXT │
│ Record Value: gZrH7wL9t3kM2nP4qX5yR8sT0uV1wZ2a... [Copy] │
│ TTL: 300 (5 minutes) │
│ │
│ Time Remaining: 7:23 │
│ [━━━━━━━━━━━━━━━━░░░░░░░░░░░░░░░░] 73% │
│ │
│ [Check DNS Now] [I've Created the Record - Verify] │
│ │
└─────────────────────────────────────────────────────────────────────┘
Key Elements:
- Record Name: The full DNS name where you create the TXT record
- Record Value: The token value that proves domain ownership
- Time Remaining: Countdown until the challenge expires
- Copy Buttons: Click to copy values to your clipboard
Step-by-Step: Creating the TXT Record
Follow these steps to complete the challenge:
-
Copy the Record Name
- Click the Copy button next to the Record Name
- This copies
_acme-challenge.example.comto your clipboard
-
Copy the Record Value
- Click the Copy button next to the Record Value
- This copies the challenge token to your clipboard
-
Log in to Your DNS Provider
- Open your DNS provider's control panel in a new browser tab
- Navigate to the DNS management section for your domain
-
Create a New TXT Record
- Click "Add Record" or similar button
- Select TXT as the record type
- Paste the Record Name (or just
_acme-challengedepending on your provider) - Paste the Record Value
- Set TTL to 300 seconds (5 minutes) or the lowest available option
-
Save the DNS Record
- Confirm and save the new TXT record
- Wait a few seconds for the change to process
Provider-Specific Instructions
Different DNS providers have different interfaces. Here are common patterns:
Cloudflare (Manual)
- Go to DNS → Records
- Click Add record
- Type:
TXT - Name:
_acme-challenge(Cloudflare adds the domain automatically) - Content: Paste the challenge token
- TTL:
Autoor5 min
GoDaddy
- Go to DNS Management
- Click Add in the Records section
- Type:
TXT - Host:
_acme-challenge - TXT Value: Paste the challenge token
- TTL:
1/2 Hour(minimum)
Namecheap
- Go to Advanced DNS
- Click Add New Record
- Type:
TXT Record - Host:
_acme-challenge - Value: Paste the challenge token
- TTL:
Automatic
Generic Providers
Most providers follow this pattern:
| Field | What to Enter |
|---|---|
| Type | TXT |
| Host/Name | _acme-challenge or full _acme-challenge.yourdomain.com |
| Value/Content | The challenge token from Charon |
| TTL | 300 or lowest available |
Verifying the Challenge
After creating the TXT record:
-
Wait for Propagation
- DNS changes can take 30 seconds to several minutes to propagate
- The "Check DNS Now" button lets you verify without triggering the full challenge
-
Click "Check DNS Now" (Optional)
- Charon queries DNS to see if your record exists
- Status updates to show if the record was found
-
Click "I've Created the Record - Verify"
- Charon sends the verification to the ACME server
- If successful, the certificate is issued
- If the record is not found, you can try again (within the time limit)
Challenge Status Messages
| Status | Meaning | Action |
|---|---|---|
| Pending | Waiting for you to create the DNS record | Create the TXT record |
| Checking DNS | Charon is verifying the record exists | Wait for result |
| DNS Found | Record detected, verifying with ACME | Wait for completion |
| Verified | Challenge completed successfully | Certificate issued! |
| Expired | Time limit exceeded | Start a new challenge |
| Failed | Verification failed | Check record and retry |
Troubleshooting Common Issues
"DNS record not found"
Possible Causes:
-
Typo in record name or value
- Double-check you copied the exact values from Charon
- Some providers require just
_acme-challenge, others need the full domain
-
DNS propagation delay
- Wait 1-2 minutes and try "Check DNS Now" again
- Use DNS Checker to verify propagation
-
Wrong DNS zone
- Ensure you're editing the correct domain's DNS
- For subdomains, the record goes in the parent zone
Solution:
# Verify your record from command line
dig TXT _acme-challenge.example.com +short
# Expected output: Your challenge token in quotes
"gZrH7wL9t3kM2nP4qX5yR8sT0uV1wZ2aB3cD4eF5gH6i"
"Challenge expired"
Cause: The 10-minute time limit was exceeded.
Solution:
- Click Cancel Challenge or wait for it to clear
- Start a new certificate request
- Have your DNS provider's control panel ready before starting
- Create the record immediately after copying the values
"Challenge already in progress"
Cause: Another challenge is active for the same domain.
Solution:
- Wait for the existing challenge to complete or expire
- If you started the challenge, navigate to the pending challenge screen
- Complete or cancel the existing challenge before starting a new one
"Verification failed"
Possible Causes:
-
Record value mismatch
- Ensure no extra spaces or characters in the TXT value
- Some providers add quotes automatically; don't add your own
-
Wrong record type
- Must be a TXT record, not CNAME or other type
-
Cached old record
- If you had a previous challenge, the old record might be cached
- Delete any existing
_acme-challengerecords before creating new ones
Solution:
- Delete the existing TXT record
- Wait 2 minutes for cache to clear
- Create a new record with the exact values from Charon
- Click "Verify" again
DNS Provider Rate Limits
Some providers limit how frequently you can modify DNS records.
Symptoms:
- "Too many requests" error
- Changes not appearing immediately
- API errors in provider dashboard
Solution:
- Wait 5-10 minutes before retrying
- Contact your DNS provider if issues persist
- Consider using a provider with better API limits for frequent certificate operations
Limitations
Auto-Renewal Not Supported
Important: The Manual DNS Provider does not support automatic certificate renewal.
When your certificate approaches expiration:
- You will receive a notification (if notifications are configured)
- You must manually initiate a new certificate request
- You must complete the DNS challenge again
Recommendation: Use the Manual DNS Provider only for:
- Initial testing and verification
- One-time certificates
- Domains where you plan to migrate to an automated provider
For production use with automatic renewal, consider:
- Supported DNS Providers
- Webhook DNS Provider for custom integrations
- RFC 2136 Provider for self-hosted DNS
Challenge Timeout
The DNS challenge must be completed within 10 minutes (default). This includes:
- Creating the TXT record
- Waiting for DNS propagation
- Clicking "Verify"
If you frequently run out of time:
- Have your DNS provider control panel open before starting
- Use a provider with faster propagation
- Consider a different approach for complex setups
Single Challenge at a Time
Only one manual challenge can be active per domain (FQDN) at a time. If you need certificates for multiple domains, complete each challenge sequentially.
Frequently Asked Questions
Can I use Manual DNS for production certificates?
Yes, but with caveats. The certificate itself is the same as those obtained through automated providers. However, you must remember to manually renew before expiration. For production systems, automated renewal is strongly recommended.
How long does DNS propagation take?
DNS propagation typically takes:
- Cloudflare: Near-instant (seconds)
- Most providers: 30 seconds to 2 minutes
- Some providers: Up to 5-10 minutes
The Manual DNS Provider's 10-minute timeout accommodates most scenarios.
Can I use a shorter TTL?
Yes. Lower TTL values (60-300 seconds) help because:
- Changes propagate faster
- Cached records expire sooner if you need to retry
Set the TTL to the lowest value your provider allows.
What happens if I enter the wrong value?
The verification will fail with "DNS record not found" or "Verification failed." Simply:
- Delete the incorrect TXT record
- Create a new record with the correct value
- Click "Verify" again (if time permits)
Can I use Manual DNS for multi-domain certificates?
Yes, but each domain requires its own TXT record. For a certificate covering example.com and www.example.com:
- Charon displays challenges for each domain
- Create TXT records for each
_acme-challengesubdomain - Verify each challenge in sequence
Is the Manual DNS Provider secure?
Yes. The Manual DNS Provider:
- Uses the same ACME protocol as automated providers
- Encrypts all data at rest
- Requires authentication for all operations
- Logs all challenge activity for auditing
The security of your certificate depends on:
- Protecting your DNS provider credentials
- Not sharing challenge tokens publicly
- Completing challenges promptly
How do I delete a Manual DNS Provider?
- Navigate to Settings → DNS Providers
- Find your Manual DNS provider in the list
- Ensure no proxy hosts are using it (migrate them first)
- Click the Delete button
- Confirm deletion
Related Documentation
Getting Help
If you encounter issues not covered in this guide:
- Check the Troubleshooting Guide
- Search GitHub Discussions
- Open an issue with:
- Your Charon version
- DNS provider name
- Error messages
- Steps you've tried