Files
proxmox/docs/archive/completion/BLOCKSCOUT_SSL_SETUP_COMPLETE.md
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

3.5 KiB

Blockscout SSL Setup Complete!

Date: December 23, 2025
Status: SSL CONFIGURED AND WORKING


Completed Tasks

  1. Let's Encrypt SSL Certificate: Installed and configured

    • Certificate: /etc/letsencrypt/live/explorer.d-bis.org/
    • Valid until: March 23, 2026
    • Auto-renewal: Enabled
  2. Nginx SSL Configuration: HTTPS enabled on port 443

    • HTTP (port 80): Redirects to HTTPS
    • HTTPS (port 443): Full SSL/TLS with modern ciphers
    • Security headers: HSTS, X-Frame-Options, etc.
  3. Cloudflare Tunnel: Updated to use HTTPS

    • Route: explorer.d-bis.orghttps://192.168.11.140:443
    • SSL verification: Disabled (noTLSVerify: true) for internal connection
  4. Blockscout Configuration: Updated for HTTPS

    • Protocol: HTTPS
    • Host: explorer.d-bis.org

Configuration Details

SSL Certificate

  • Domain: explorer.d-bis.org
  • Issuer: Let's Encrypt R13
  • Location: /etc/letsencrypt/live/explorer.d-bis.org/
  • Auto-renewal: Enabled via certbot.timer

Nginx Configuration

  • HTTP Port: 80 (redirects to HTTPS)
  • HTTPS Port: 443
  • SSL Protocols: TLSv1.2, TLSv1.3
  • SSL Ciphers: Modern ECDHE ciphers only
  • Security Headers:
    • Strict-Transport-Security (HSTS)
    • X-Frame-Options
    • X-Content-Type-Options
    • X-XSS-Protection

Cloudflare Tunnel

  • Tunnel ID: 10ab22da-8ea3-4e2e-a896-27ece2211a05
  • Route: explorer.d-bis.orghttps://192.168.11.140:443
  • SSL Verification: Disabled for internal connection (Cloudflare → Blockscout)

Access Points

Internal

External


Testing

Test Internal HTTPS

curl -k https://192.168.11.140/health

Test External HTTPS

curl https://explorer.d-bis.org/health

Verify Certificate

openssl s_client -connect explorer.d-bis.org:443 -servername explorer.d-bis.org < /dev/null

Check Certificate Auto-Renewal

systemctl status certbot.timer

Architecture

Internet
   ↓
Cloudflare Edge (SSL Termination)
   ↓
Cloudflare Tunnel (encrypted)
   ↓
cloudflared (VMID 102)
   ↓
HTTPS → https://192.168.11.140:443
   ↓
Nginx (VMID 5000) - SSL/TLS
   ↓
HTTP → http://127.0.0.1:4000
   ↓
Blockscout Container

Files Modified

  • /etc/letsencrypt/live/explorer.d-bis.org/ - SSL certificates
  • /etc/nginx/sites-available/blockscout - Nginx SSL configuration
  • /opt/blockscout/docker-compose.yml - Blockscout HTTPS configuration
  • Cloudflare Tunnel configuration - Updated route to HTTPS

Maintenance

Certificate Renewal

Certificates auto-renew via certbot.timer. Manual renewal:

certbot renew --nginx

Check Certificate Expiry

openssl x509 -in /etc/letsencrypt/live/explorer.d-bis.org/fullchain.pem -noout -dates

Restart Services

# Nginx
systemctl restart nginx

# Blockscout
cd /opt/blockscout && docker-compose restart blockscout

Next Steps

  1. SSL certificates installed
  2. Nginx configured with SSL
  3. Cloudflare tunnel updated to HTTPS
  4. Wait for Blockscout to fully start (may take 1-2 minutes)
  5. Test external access: curl https://explorer.d-bis.org/health

SSL setup is complete! Blockscout is now accessible via HTTPS.