Every production ERP needs SSL encryption. Let’s Encrypt provides free SSL certificates that auto-renew. This guide covers setting up SSL for both ERPNext and Odoo behind Nginx.
Pre-requisites
A registered domain name pointing to your server
Nginx installed and configured
Port 80 and 443 open in your firewall
STEP 1 Install Certbot
sudo apt update
sudo apt install -y certbot python3-certbot-nginxSTEP 2 Get Your Certificate
sudo certbot --nginx -d yourdomain.comCertbot will ask for your email (for renewal reminders) and whether to redirect HTTP to HTTPS. Choose redirect — there’s no reason to serve an ERP over plain HTTP.
STEP 3 Verify Auto-Renewal
Let’s Encrypt certificates expire every 90 days, but Certbot sets up a systemd timer to renew them automatically.
sudo certbot renew --dry-runIf the dry run succeeds, your certificates will renew automatically. No further action needed.
STEP 4 Verify SSL
curl -I https://yourdomain.comYou should see HTTP/2 200 and the certificate details. Your ERP is now encrypted with SSL.
For ERPNext Specifically
If you used bench setup production, Certbot handles everything. But if you need to do it manually:
cd frappe-bench
bench config dns_multitenant on
bench setup lets-encrypt yourdomain.comTroubleshooting
# Check certificate expiry
sudo certbot certificates
# Force renewal
sudo certbot renew --force-renewal
# Check Nginx config
sudo nginx -t
# Restart Nginx
sudo systemctl restart nginxSSL is non-negotiable for any ERP system. Your financial data, customer information, and business operations are flowing through this connection. Encrypt it.
Comments
Join the discussion. Got a question, found an issue, or want to share your experience?