Skip to main content
Wings supports SSL/TLS encryption for both the HTTP API and WebSocket connections. This page covers certificate configuration and best practices.

TLS Configuration

Wings uses industry-standard TLS configuration based on Cloudflare’s recommendations.

Default TLS Settings

Wings implements secure defaults for TLS connections:
Key Features:
  • HTTP/2 Support: Enabled via h2 protocol
  • Modern Cipher Suites: Only secure ciphers (ECDHE with AES-GCM or ChaCha20-Poly1305)
  • TLS 1.2+: Minimum TLS 1.2, supports TLS 1.3
  • Forward Secrecy: All cipher suites provide perfect forward secrecy
  • Elliptic Curves: Prefers X25519 and P-256

Configuration File

Enable SSL in /etc/pterodactyl/config.yml:
Configuration structure:

Certificate Acquisition

Using Let’s Encrypt

The recommended way to obtain certificates is using Certbot with Let’s Encrypt.

Install Certbot

Ubuntu/Debian:
CentOS/RHEL:

Obtain Certificate

Standalone Mode (Wings must be stopped):
Webroot Mode (Wings can stay running):
DNS Challenge (for wildcard certificates):

Certificate Locations

Certbot stores certificates in /etc/letsencrypt/live/:
  • Certificate: /etc/letsencrypt/live/wings.example.com/fullchain.pem
  • Private Key: /etc/letsencrypt/live/wings.example.com/privkey.pem
  • Chain: /etc/letsencrypt/live/wings.example.com/chain.pem
  • Certificate Only: /etc/letsencrypt/live/wings.example.com/cert.pem
Always use fullchain.pem for the certificate file, not cert.pem. The full chain includes intermediate certificates required for proper validation.

Auto-Renewal

Certbot automatically installs a systemd timer for renewal:

Reload Wings After Renewal

Create a renewal hook to reload Wings:
Add:
Make executable:

Using Custom Certificates

You can use certificates from any Certificate Authority:
  1. Obtain certificate and key from your CA
  2. Copy to secure location:
  1. Update configuration:

SFTP Host Keys

Wings automatically generates an ED25519 host key for SFTP on first run.

Key Generation

Key Location

The SFTP host key is stored at:

SFTP Cryptography

Wings uses modern SSH algorithms:

Certificate Validation

Testing SSL Configuration

Verify your SSL setup:

Common Issues

Certificate Chain Issues

Problem: Browser shows certificate warnings Solution: Ensure you’re using fullchain.pem, not cert.pem:

Permission Denied

Problem: Wings cannot read certificate files Solution: Check file permissions:

Mixed Content Warnings

Problem: WebSocket connection fails with SSL Solution: Ensure Panel uses wss:// for WebSocket URLs, not ws://

Security Best Practices

File Permissions

Protect private keys:

Certificate Monitoring

Monitor certificate expiration:

HSTS (HTTP Strict Transport Security)

Consider enabling HSTS headers via reverse proxy:

Cipher Suite Selection

Wings uses only secure cipher suites. Never modify DefaultTLSConfig to include weak ciphers like:
  • RC4
  • 3DES
  • CBC-mode ciphers (vulnerable to BEAST/Lucky13)
  • Non-ECDHE ciphers (no forward secrecy)

TLS Version

  • Minimum: TLS 1.2 (required)
  • Recommended: TLS 1.3 (automatic when supported)
  • Never: TLS 1.0 or 1.1 (deprecated and insecure)

Reverse Proxy Configuration

When using a reverse proxy (Nginx, Apache), you can terminate SSL there:

Nginx Example

With a reverse proxy, disable SSL in Wings:
See Best Practices for more reverse proxy configurations.