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

161 lines
3.5 KiB
Markdown

# 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.org``https://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.org``https://192.168.11.140:443`
- **SSL Verification**: Disabled for internal connection (Cloudflare → Blockscout)
---
## Access Points
### Internal
- **HTTP**: http://192.168.11.140 (redirects to HTTPS)
- **HTTPS**: https://192.168.11.140
- **Health**: https://192.168.11.140/health
### External
- **HTTPS**: https://explorer.d-bis.org
- **Health**: https://explorer.d-bis.org/health
- **API**: https://explorer.d-bis.org/api
---
## Testing
### Test Internal HTTPS
```bash
curl -k https://192.168.11.140/health
```
### Test External HTTPS
```bash
curl https://explorer.d-bis.org/health
```
### Verify Certificate
```bash
openssl s_client -connect explorer.d-bis.org:443 -servername explorer.d-bis.org < /dev/null
```
### Check Certificate Auto-Renewal
```bash
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:
```bash
certbot renew --nginx
```
### Check Certificate Expiry
```bash
openssl x509 -in /etc/letsencrypt/live/explorer.d-bis.org/fullchain.pem -noout -dates
```
### Restart Services
```bash
# 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.**