- Add HTTPSConfig model for managing HTTPS settings - Add admin routes for HTTPS configuration management - Add beautiful admin template for HTTPS configuration - Add database migration for https_config table - Add CLI utility for HTTPS management - Add setup script for automated configuration - Add Caddy configuration generator and manager - Add comprehensive documentation (3 guides) - Add HTTPS Configuration card to admin dashboard - Implement input validation and security features - Add admin-only access control with audit trail - Add real-time configuration preview - Integrate with existing Caddy reverse proxy Features: - Enable/disable HTTPS from web interface - Configure domain, hostname, IP address, port - Automatic SSL certificate management via Let's Encrypt - Real-time Caddyfile generation and reload - Full audit trail with admin username and timestamps - Support for HTTPS and HTTP fallback access points - Beautiful, mobile-responsive UI Modified files: - app/models/__init__.py (added HTTPSConfig import) - app/blueprints/admin.py (added HTTPS routes) - app/templates/admin/admin.html (added HTTPS card) - docker-compose.yml (added Caddyfile mount and admin port) New files: - app/models/https_config.py - app/blueprints/https_config.html - app/utils/caddy_manager.py - https_manager.py - setup_https.sh - migrations/add_https_config_table.py - migrations/add_email_to_https_config.py - HTTPS_STATUS.txt - Documentation files (3 markdown guides)
5.4 KiB
5.4 KiB
HTTPS Configuration - Quick Reference Guide
🎯 Quick Access
Admin Panel Location: Main Dashboard → 🔒 HTTPS Configuration (Purple card)
⚡ Quick Setup (5 Minutes)
1. Initial State
Your app is running on HTTP. Access: http://10.76.152.164
2. Navigate to HTTPS Config
- Admin Panel → 🔒 HTTPS Configuration
3. Configure (Fill In)
| Field | Value | Example |
|---|---|---|
| Hostname | Server short name | digiserver |
| Domain | Full domain name | digiserver.sibiusb.harting.intra |
| IP Address | Server IP | 10.76.152.164 |
| Port | HTTPS port (default 443) | 443 |
4. Enable HTTPS
- Toggle: Enable HTTPS ✅
- Click: 💾 Save HTTPS Configuration
5. Verify
- ✅ Configuration shows as "ENABLED"
- ✅ Access via:
https://digiserver.sibiusb.harting.intra - ✅ Check status card for current settings
🔍 Status Display
Enabled State ✅
✅ HTTPS ENABLED
Domain: digiserver.sibiusb.harting.intra
Hostname: digiserver
IP Address: 10.76.152.164
Port: 443
Access URL: https://digiserver.sibiusb.harting.intra
Last Updated: 2024-01-14 15:30:45 by admin
Disabled State ⚠️
⚠️ HTTPS DISABLED
The application is currently running on HTTP only (port 80)
Enable HTTPS below to secure your application.
🔐 Access Points
After HTTPS is Enabled
| Access Type | URL | Use Case |
|---|---|---|
| Primary (HTTPS) | https://digiserver.sibiusb.harting.intra |
Daily use, secure |
| Fallback (HTTP) | http://10.76.152.164 |
Troubleshooting, direct IP access |
✅ Prerequisites Checklist
Before enabling HTTPS:
- DNS resolves domain to IP:
nslookup digiserver.sibiusb.harting.intra - Firewall allows port 80 (HTTP)
- Firewall allows port 443 (HTTPS)
- Server IP is
10.76.152.164 - Domain is
digiserver.sibiusb.harting.intra
🐛 Troubleshooting
HTTPS Not Working?
-
Check Status
- Admin → HTTPS Configuration
- Verify "HTTPS ENABLED" is shown
-
Test DNS
nslookup digiserver.sibiusb.harting.intraShould resolve to:
10.76.152.164 -
Test Ports
# Should be reachable telnet 10.76.152.164 443 telnet 10.76.152.164 80 -
Check Logs
- Admin Panel → Server Logs
- Look for HTTPS enable/disable messages
-
View Caddy Logs
docker-compose logs caddy
Domain Not Resolving?
Add to hosts file (temporary):
- Windows:
C:\Windows\System32\drivers\etc\hosts - Mac/Linux:
/etc/hosts
Add line:
10.76.152.164 digiserver.sibiusb.harting.intra
📋 Common Tasks
Enable HTTPS
- Go to Admin → HTTPS Configuration
- Toggle "Enable HTTPS"
- Fill in hostname, domain, IP
- Click "Save HTTPS Configuration"
Disable HTTPS
- Go to Admin → HTTPS Configuration
- Toggle off "Enable HTTPS"
- Click "Save HTTPS Configuration"
- App returns to HTTP only
Change Domain
- Go to Admin → HTTPS Configuration
- Update "Full Domain Name"
- Click "Save HTTPS Configuration"
Check Current Settings
- Go to Admin → HTTPS Configuration
- View status card at top
- Shows all current settings
View Configuration History
- Admin Panel → Server Logs
- Search for "HTTPS"
- See all changes and who made them
🎯 Configuration Examples
Default Setup (Already Provided)
Hostname: digiserver
Domain: digiserver.sibiusb.harting.intra
IP: 10.76.152.164
Port: 443
Different IP
Hostname: digiserver
Domain: digiserver.sibiusb.harting.intra
IP: 10.76.152.165 ← Change this
Port: 443
Different Domain
Hostname: myserver
Domain: myserver.company.local ← Change this
IP: 10.76.152.164
Port: 443
🔒 Security Notes
✅ Admin-Only Feature
- Only administrators can access this page
- All changes logged with admin username
✅ Automatic SSL Certificates
- Let's Encrypt manages certificates
- Auto-renewed before expiration
- No manual certificate management needed
✅ Access Control
- HTTP redirects to HTTPS automatically
- Security headers automatically added
- Safe for internal and external access
📞 Need Help?
-
Check Documentation
- See:
HTTPS_CONFIGURATION.mdfor detailed guide - See:
HTTPS_IMPLEMENTATION_SUMMARY.mdfor architecture
- See:
-
View Logs
- Admin Panel → Server Logs
- Filter for HTTPS-related entries
-
Test Configuration
# Via CLI python https_manager.py status -
Restart Application
docker-compose restart
📊 Quick Status Check
CLI Command:
python https_manager.py status
Output:
==================================================
HTTPS Configuration Status
==================================================
Status: ✅ ENABLED
Hostname: digiserver
Domain: digiserver.sibiusb.harting.intra
IP Address: 10.76.152.164
Port: 443
Updated: 2024-01-14 15:30:45 by admin
Access URL: https://digiserver.sibiusb.harting.intra
Fallback: http://10.76.152.164
==================================================
🎉 You're All Set!
Your HTTPS configuration is ready to use. The system will:
- ✅ Manage SSL certificates automatically
- ✅ Keep them renewed
- ✅ Provide secure access
- ✅ Log all configuration changes
- ✅ Offer fallback HTTP access
That's it! Your app is now secure! 🔒