Documentation Index
Fetch the complete documentation index at: https://mintlify.com/pterodactyl/wings/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Wings supports HTTPS for its API server through two methods:- Automatic TLS with Let’s Encrypt - Automatic certificate generation and renewal
- Manual TLS - Use your own SSL certificates
Automatic TLS with Let’s Encrypt
Wings can automatically obtain and renew SSL certificates from Let’s Encrypt using the ACME protocol.Requirements
- Valid domain name pointing to your Wings server
- Port 80 (HTTP) accessible for ACME challenges
- Port 443 (HTTPS) available for Wings API
Configuration
Auto-TLS is configured via command-line flags, not the configuration file:--auto-tls- Enable automatic TLS--tls-hostname- FQDN for the SSL certificate (required with--auto-tls)
How It Works
- Wings starts and listens on port 443 for HTTPS
- An HTTP server starts on port 80 for ACME challenges
- Let’s Encrypt validates domain ownership via HTTP-01 challenge
- Certificate is automatically generated and stored
- Certificates are automatically renewed before expiration
Certificate Storage
Certificates are cached in:Systemd Service Configuration
To use auto-TLS with systemd, modify your Wings service file:Firewall Configuration
Ensure ports 80 and 443 are accessible: UFW:Manual TLS Configuration
If you prefer to manage your own SSL certificates, configure manual TLS in the configuration file.Configuration
enabled- Set totrueto enable SSLcert- Path to certificate file (PEM format)key- Path to private key file (PEM format)
Certificate Requirements
- Format: PEM encoded
- Certificate: Full certificate chain (including intermediates)
- Private Key: Unencrypted private key
- Permissions: Readable by the Wings process (typically root)
Using Let’s Encrypt Certificates Manually
If you have Let’s Encrypt certificates from another source:Using Custom Certificates
For certificates from a commercial CA or internal CA:Certificate Renewal
With manual TLS, you’re responsible for certificate renewal:- Renew your certificate through your CA or certbot
- Replace the certificate files
- Restart Wings:
TLS Configuration Details
Wings uses secure TLS defaults regardless of automatic or manual configuration:Supported Protocols
- Minimum: TLS 1.2
- Maximum: TLS 1.3
Cipher Suites
Curve Preferences
- X25519
- P-256
HTTP/2 Support
Wings supports HTTP/2 when TLS is enabled:Running Without SSL
For development or when using a reverse proxy, you can run Wings without SSL:Reverse Proxy Configuration
If using a reverse proxy for SSL termination, Wings should run without SSL:Wings Configuration
Nginx Example
Caddy Example
Troubleshooting
Auto-TLS Issues
Port 80 Already in Use
Domain Validation Fails
- Domain doesn’t point to your server
- Port 80 blocked by firewall
- DNS propagation not complete
- Verify DNS:
dig wings.example.com - Check firewall rules
- Wait for DNS propagation (up to 48 hours)
Manual TLS Issues
Certificate Not Found
Permission Denied
Certificate/Key Mismatch
Verification
Test your SSL configuration:Security Best Practices
- Always use SSL/TLS in production - Even behind a reverse proxy
- Keep certificates updated - Monitor expiration dates
- Use strong ciphers - Wings defaults are secure
- Enable HTTP/2 - Automatically enabled with TLS
- Secure private keys - Restrict permissions (600)
- Use HSTS - Configure on reverse proxy if applicable
Comparison: Auto-TLS vs Manual TLS
| Feature | Auto-TLS | Manual TLS |
|---|---|---|
| Certificate Generation | Automatic | Manual |
| Renewal | Automatic | Manual |
| Port Requirements | 80, 443 | Custom |
| Configuration | Command-line | Config file |
| Best For | Simple deployments | Complex environments, reverse proxies |
| DNS Required | Yes | Optional |
Related Settings
SSL/TLS configuration works alongside:- API host/port settings - Where Wings listens
- Trusted proxies - For X-Forwarded headers
- CORS settings - Cross-origin requests
- Panel configuration - Must match Wings URL
