{"id":16219,"date":"2025-11-27T06:36:41","date_gmt":"2025-11-27T06:36:41","guid":{"rendered":"https:\/\/kb.cloudhostgeek.com\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/"},"modified":"2026-02-11T18:59:41","modified_gmt":"2026-02-11T18:59:41","slug":"how-do-i-secure-n8n-with-ssl-or-https","status":"publish","type":"docs","link":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/","title":{"rendered":"How do I secure n8n with SSL or HTTPS?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"16219\" class=\"elementor elementor-16219\" data-elementor-post-type=\"docs\">\n\t\t\t\t<div class=\"elementor-element elementor-element-67e63469 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"67e63469\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2b250dce e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"2b250dce\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-566afab2 elementor-widget elementor-widget-text-editor\" data-id=\"566afab2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Introduction <\/b><\/h2><p><span style=\"font-weight: 400;\">When running n8n on a Virtual Private Server (VPS), securing your automation dashboard with SSL or HTTPS is crucial. SSL ensures that all data transmitted between your browser and n8n is encrypted, protecting sensitive workflow information and login credentials.<\/span><\/p><p><span style=\"font-weight: 400;\">This guide explains how to secure n8n with SSL or HTTPS using a custom domain, NGINX, and free Let\u2019s Encrypt certificates\u2014making your automation instance safe and production-ready. To ensure stable performance and security, it\u2019s recommended to run n8n on a reliable VPS such as one from<\/span><a href=\"https:\/\/www.bigcloudy.com\/\"> <span style=\"font-weight: 400;\">BigCloudy<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p><h2><b>Why Secure n8n with SSL\/HTTPS?<\/b><\/h2><p><span style=\"font-weight: 400;\">Using HTTPS on your n8n instance provides critical security and operational benefits.<\/span><\/p><h2><b>Key Benefits<\/b><\/h2><h3><b>1. Encrypts Data<\/b><\/h3><p><span style=\"font-weight: 400;\">All communication between your browser and VPS is encrypted, preventing unauthorized access to sensitive automation data.<\/span><\/p><h3><b>2. Enables Secure Authentication<\/b><\/h3><p><span style=\"font-weight: 400;\">SSL protects login credentials, API keys, and tokens from interception during transmission.<\/span><\/p><h3><b>3. Builds Trust<\/b><\/h3><p><span style=\"font-weight: 400;\">A secure HTTPS URL looks professional and builds trust with users, teams, and clients.<\/span><\/p><h3><b>4. Required for Some Integrations<\/b><\/h3><p><span style=\"font-weight: 400;\">Many third-party applications and APIs require HTTPS endpoints, making SSL essential for compatibility.<\/span><\/p><h3><b>Requirements Before Enabling SSL<\/b><\/h3><p><span style=\"font-weight: 400;\">Before securing n8n with HTTPS, ensure the following requirements are met:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Running n8n Instance:<\/b><span style=\"font-weight: 400;\"> Installed via Node.js, Docker, or PM2<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Custom Domain:<\/b><span style=\"font-weight: 400;\"> DNS A record pointing to your VPS IP<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><b>NGINX Installed:<\/b><span style=\"font-weight: 400;\"> Used as a reverse proxy for SSL termination<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Root\/Sudo Access:<\/b><span style=\"font-weight: 400;\"> Required for installation and configuration<\/span><\/li><\/ul><h3><b>Step 1: Install NGINX on Your VPS<\/b><\/h3><p><span style=\"font-weight: 400;\">NGINX acts as a reverse proxy to forward requests to n8n and handle SSL encryption.<\/span><\/p><pre><span style=\"font-weight: 400;\">sudo apt update<\/span><\/pre><p><span style=\"font-weight: 400;\">sudo apt install nginx -y<\/span><\/p><p><span style=\"font-weight: 400;\">Verify NGINX is running:<\/span><\/p><p><span style=\"font-weight: 400;\">sudo systemctl status nginx<\/span><\/p><h3><b>Step 2: Configure NGINX as a Reverse Proxy<\/b><\/h3><p><span style=\"font-weight: 400;\">Create a configuration file for your n8n domain:<\/span><\/p><pre><span style=\"font-weight: 400;\">sudo nano \/etc\/nginx\/sites-available\/n8n.conf<\/span><\/pre><p><span style=\"font-weight: 400;\">Add the following configuration (replace <\/span><span style=\"font-weight: 400;\">yourdomain.com<\/span><span style=\"font-weight: 400;\"> with your actual domain):<\/span><\/p><pre><span style=\"font-weight: 400;\">server {<\/span><\/pre><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0listen 80;<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0server_name yourdomain.com;<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0location \/ {<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_pass http:\/\/localhost:5678\/;<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header Host $host;<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Real-IP $remote_addr;<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Forwarded-Proto $scheme;<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/p><p><span style=\"font-weight: 400;\">}<\/span><\/p><p><span style=\"font-weight: 400;\">Enable the configuration and restart NGINX:<\/span><\/p><pre><span style=\"font-weight: 400;\">sudo ln -s \/etc\/nginx\/sites-available\/n8n.conf \/etc\/nginx\/sites-enabled\/<\/span><\/pre><p><span style=\"font-weight: 400;\">sudo nginx -t<\/span><\/p><p><span style=\"font-weight: 400;\">sudo systemctl restart nginx<\/span><\/p><p><span style=\"font-weight: 400;\">At this stage, visiting <\/span><span style=\"font-weight: 400;\">http:\/\/yourdomain.com<\/span><span style=\"font-weight: 400;\"> should load your n8n dashboard.<\/span><\/p><h3><b>Step 3: Install Certbot for Let\u2019s Encrypt<\/b><\/h3><p><span style=\"font-weight: 400;\">Certbot automates SSL certificate issuance and renewal.<\/span><\/p><pre><span style=\"font-weight: 400;\">sudo apt install certbot python3-certbot-nginx -y<\/span><\/pre><h3><b>Step 4: Obtain and Apply the SSL Certificate<\/b><\/h3><p><span style=\"font-weight: 400;\">Generate and apply the SSL certificate:<\/span><\/p><pre><span style=\"font-weight: 400;\">sudo certbot --nginx -d yourdomain.com<\/span><\/pre><p><span style=\"font-weight: 400;\">Certbot will automatically:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Verify domain ownership<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Configure HTTPS in NGINX<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Enable automatic certificate renewal<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">After completion, your site should load securely with a padlock icon.<\/span><\/p><h3><b>Step 5: Enable Basic Authentication (Optional but Recommended)<\/b><\/h3><h4><b>If Running n8n via Node.js<\/b><\/h4><pre><span style=\"font-weight: 400;\">export N8N_BASIC_AUTH_ACTIVE=true<\/span><\/pre><p><span style=\"font-weight: 400;\">export N8N_BASIC_AUTH_USER=admin<\/span><\/p><p><span style=\"font-weight: 400;\">export N8N_BASIC_AUTH_PASSWORD=securepassword<\/span><\/p><h4><b>If Running n8n via Docker<\/b><\/h4><p><span style=\"font-weight: 400;\">Add the following environment variables to your <\/span><span style=\"font-weight: 400;\">docker-compose.yml<\/span><span style=\"font-weight: 400;\">:<\/span><\/p><pre><span style=\"font-weight: 400;\">environment:<\/span><\/pre><p><span style=\"font-weight: 400;\">\u00a0\u00a0&#8211; N8N_BASIC_AUTH_ACTIVE=true<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0&#8211; N8N_BASIC_AUTH_USER=admin<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0\u00a0&#8211; N8N_BASIC_AUTH_PASSWORD=securepassword<\/span><\/p><p><span style=\"font-weight: 400;\">Restart n8n to apply changes.<\/span><\/p><h3><b>Step 6: Test Your Secure n8n Instance<\/b><\/h3><p><span style=\"font-weight: 400;\">Open your browser and visit:<\/span><\/p><p><span style=\"font-weight: 400;\">https:\/\/yourdomain.com<\/span><\/p><p><span style=\"font-weight: 400;\">You should confirm:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">HTTPS is enabled<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Padlock icon is visible<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Login prompt appears if authentication is enabled<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">Your n8n instance is now secure and production-ready.<\/span><\/p><h3><b>Troubleshooting SSL Issues<\/b><\/h3><h4><b>1. SSL Certificate Not Found<\/b><\/h4><p><span style=\"font-weight: 400;\">Ensure your DNS A record points to the correct VPS IP and the domain matches your NGINX configuration.<\/span><\/p><h4><b>2. Firewall Blocking Ports<\/b><\/h4><p><span style=\"font-weight: 400;\">Allow HTTP and HTTPS traffic:<\/span><\/p><pre><span style=\"font-weight: 400;\">sudo ufw allow 80<\/span><\/pre><p><span style=\"font-weight: 400;\">sudo ufw allow 443<\/span><\/p><h4><b>3. NGINX Configuration Errors<\/b><\/h4><p><span style=\"font-weight: 400;\">Test before restarting:<\/span><\/p><pre><span style=\"font-weight: 400;\">sudo nginx -t<\/span><\/pre><h4><b>4. SSL Renewal Issues<\/b><\/h4><p><span style=\"font-weight: 400;\">Test automatic renewal:<\/span><\/p><pre><span style=\"font-weight: 400;\">sudo certbot renew --dry-run<\/span><\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b165ccd e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"b165ccd\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-32ae217 elementor-widget elementor-widget-text-editor\" data-id=\"32ae217\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Conclusion<\/b><\/h2><p><span style=\"font-weight: 400;\">Securing n8n with SSL or HTTPS is essential for protecting workflows, API keys, and sensitive automation data. By using NGINX as a reverse proxy and Let\u2019s Encrypt certificates, you can enable HTTPS quickly and safely.<\/span><\/p><p><span style=\"font-weight: 400;\">Combined with basic authentication and a secure VPS environment from<\/span><a href=\"https:\/\/www.bigcloudy.com\/\"> <span style=\"font-weight: 400;\">BigCloudy<\/span><\/a><span style=\"font-weight: 400;\">, SSL ensures your self-hosted n8n instance is professional, encrypted, and ready for production use.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-41fcd17 elementor-widget elementor-widget-text-editor\" data-id=\"41fcd17\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Need Help?\n<\/b><\/h2>\nIf you face any issues updating your nameservers or need further assistance, our support team is always available:\n<ul>\n \t<li aria-level=\"1\"><img decoding=\"async\" class=\"emoji\" role=\"img\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f4e7.svg\" alt=\"mail\" \/>\u00a0<b>Email:<\/b>\u00a0support@bigcloudy.com<\/li>\n \t<li aria-level=\"1\"><img decoding=\"async\" class=\"emoji\" role=\"img\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f310.svg\" alt=\"website\" \/><a href=\"https:\/\/www.bigcloudy.com\/contact-us\">\u00a0<b>Submit a support ticket<\/b><\/a><\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42c51b7 elementor-widget elementor-widget-text-editor\" data-id=\"42c51b7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>FAQ<\/b><\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1671a28 elementor-widget elementor-widget-eael-adv-accordion\" data-id=\"1671a28\" data-element_type=\"widget\" data-widget_type=\"eael-adv-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"eael-adv-accordion\" id=\"eael-adv-accordion-1671a28\" data-scroll-on-click=\"no\" data-scroll-speed=\"300\" data-accordion-id=\"1671a28\" data-accordion-type=\"accordion\" data-toogle-speed=\"300\">\n    <div class=\"eael-accordion-list\">\n                <div id=\"is-ssl-mandatory-for-n8n\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"1\" aria-controls=\"elementor-tab-content-2351\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Is SSL mandatory for n8n?<\/span><svg aria-hidden=\"true\" class=\"fa-toggle e-font-icon-svg e-fas-angle-right\" viewBox=\"0 0 256 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"><\/path><\/svg><\/div><div id=\"elementor-tab-content-2351\" class=\"eael-accordion-content clearfix\" data-tab=\"1\" aria-labelledby=\"is-ssl-mandatory-for-n8n\"><p><span style=\"font-weight: 400;\">SSL is not mandatory but highly recommended to protect data, credentials, and integrations.<\/span><\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"can-i-use-https-without-a-custom-domain\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"2\" aria-controls=\"elementor-tab-content-2352\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Can I use HTTPS without a custom domain?<\/span><svg aria-hidden=\"true\" class=\"fa-toggle e-font-icon-svg e-fas-angle-right\" viewBox=\"0 0 256 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"><\/path><\/svg><\/div><div id=\"elementor-tab-content-2352\" class=\"eael-accordion-content clearfix\" data-tab=\"2\" aria-labelledby=\"can-i-use-https-without-a-custom-domain\"><p><span style=\"font-weight: 400;\">No. Let\u2019s Encrypt requires a valid domain name to issue SSL certificates.<\/span><\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"does-lets-encrypt-ssl-expire\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"3\" aria-controls=\"elementor-tab-content-2353\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Does Let\u2019s Encrypt SSL expire?<\/span><svg aria-hidden=\"true\" class=\"fa-toggle e-font-icon-svg e-fas-angle-right\" viewBox=\"0 0 256 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"><\/path><\/svg><\/div><div id=\"elementor-tab-content-2353\" class=\"eael-accordion-content clearfix\" data-tab=\"3\" aria-labelledby=\"does-lets-encrypt-ssl-expire\"><p><span style=\"font-weight: 400;\">Yes. Certificates expire every 90 days but renew automatically via Certbot.<\/span><\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"will-ssl-slow-down-n8n-performance\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"4\" aria-controls=\"elementor-tab-content-2354\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Will SSL slow down n8n performance?<\/span><svg aria-hidden=\"true\" class=\"fa-toggle e-font-icon-svg e-fas-angle-right\" viewBox=\"0 0 256 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"><\/path><\/svg><\/div><div id=\"elementor-tab-content-2354\" class=\"eael-accordion-content clearfix\" data-tab=\"4\" aria-labelledby=\"will-ssl-slow-down-n8n-performance\"><p><span style=\"font-weight: 400;\">No. HTTPS has minimal overhead and modern VPS providers like<\/span><a href=\"https:\/\/www.bigcloudy.com\/\"> <span style=\"font-weight: 400;\">BigCloudy<\/span><\/a><span style=\"font-weight: 400;\"> handle it efficiently.<\/span><\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"can-i-combine-ssl-with-ip-restrictions\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"5\" aria-controls=\"elementor-tab-content-2355\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Can I combine SSL with IP restrictions?<\/span><svg aria-hidden=\"true\" class=\"fa-toggle e-font-icon-svg e-fas-angle-right\" viewBox=\"0 0 256 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"><\/path><\/svg><\/div><div id=\"elementor-tab-content-2355\" class=\"eael-accordion-content clearfix\" data-tab=\"5\" aria-labelledby=\"can-i-combine-ssl-with-ip-restrictions\"><p><span style=\"font-weight: 400;\">Yes. You can further secure n8n using firewalls, IP whitelisting, and authentication.<\/span><\/p><\/div>\n                <\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Introduction When running n8n on a Virtual Private Server (VPS), securing your automation dashboard with SSL or HTTPS is crucial. SSL ensures that all data transmitted between your browser and n8n is encrypted, protecting sensitive workflow information and login credentials. This guide explains how to secure n8n with SSL or HTTPS using a custom domain, NGINX, and free Let\u2019s Encrypt certificates\u2014making your automation instance safe and production-ready. To ensure stable performance and security, it\u2019s recommended to run n8n on a reliable VPS such as one from BigCloudy. Why Secure n8n with SSL\/HTTPS? Using HTTPS on your n8n instance provides critical security and operational benefits. Key Benefits 1. Encrypts Data All communication between your browser and VPS is encrypted, preventing unauthorized access to sensitive automation data. 2. Enables Secure Authentication SSL protects login credentials, API keys, and tokens from interception during transmission. 3. Builds Trust A secure HTTPS URL looks professional and builds trust with users, teams, and clients. 4. Required for Some Integrations Many third-party applications and APIs require HTTPS endpoints, making SSL essential for compatibility. Requirements Before Enabling SSL Before securing n8n with HTTPS, ensure the following requirements are met: Running n8n Instance: Installed via Node.js, Docker, or PM2 Custom Domain: DNS A record pointing to your VPS IP NGINX Installed: Used as a reverse proxy for SSL termination Root\/Sudo Access: Required for installation and configuration Step 1: Install NGINX on Your VPS NGINX acts as a reverse proxy to forward requests to n8n and handle SSL encryption. sudo apt update sudo apt install nginx -y Verify NGINX is running: sudo systemctl status nginx Step 2: Configure NGINX as a Reverse Proxy Create a configuration file for your n8n domain: sudo nano \/etc\/nginx\/sites-available\/n8n.conf Add the following configuration (replace yourdomain.com with your actual domain): server { \u00a0\u00a0\u00a0\u00a0listen 80; \u00a0\u00a0\u00a0\u00a0server_name yourdomain.com; \u00a0\u00a0\u00a0\u00a0location \/ { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_pass http:\/\/localhost:5678\/; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header Host $host; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Real-IP $remote_addr; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Forwarded-Proto $scheme; \u00a0\u00a0\u00a0\u00a0} } Enable the configuration and restart NGINX: sudo ln -s \/etc\/nginx\/sites-available\/n8n.conf \/etc\/nginx\/sites-enabled\/ sudo nginx -t sudo systemctl restart nginx At this stage, visiting http:\/\/yourdomain.com should load your n8n dashboard. Step 3: Install Certbot for Let\u2019s Encrypt Certbot automates SSL certificate issuance and renewal. sudo apt install certbot python3-certbot-nginx -y Step 4: Obtain and Apply the SSL Certificate Generate and apply the SSL certificate: sudo certbot &#8211;nginx -d yourdomain.com Certbot will automatically: Verify domain ownership Configure HTTPS in NGINX Enable automatic certificate renewal After completion, your site should load securely with a padlock icon. Step 5: Enable Basic Authentication (Optional but Recommended) If Running n8n via Node.js export N8N_BASIC_AUTH_ACTIVE=true export N8N_BASIC_AUTH_USER=admin export N8N_BASIC_AUTH_PASSWORD=securepassword If Running n8n via Docker Add the following environment variables to your docker-compose.yml: environment: \u00a0\u00a0&#8211; N8N_BASIC_AUTH_ACTIVE=true \u00a0\u00a0&#8211; N8N_BASIC_AUTH_USER=admin \u00a0\u00a0&#8211; N8N_BASIC_AUTH_PASSWORD=securepassword Restart n8n to apply changes. Step 6: Test Your Secure n8n Instance Open your browser and visit: https:\/\/yourdomain.com You should confirm: HTTPS is enabled Padlock icon is visible Login prompt appears if authentication is enabled Your n8n instance is now secure and production-ready. Troubleshooting SSL Issues 1. SSL Certificate Not Found Ensure your DNS A record points to the correct VPS IP and the domain matches your NGINX configuration. 2. Firewall Blocking Ports Allow HTTP and HTTPS traffic: sudo ufw allow 80 sudo ufw allow 443 3. NGINX Configuration Errors Test before restarting: sudo nginx -t 4. SSL Renewal Issues Test automatic renewal: sudo certbot renew &#8211;dry-run Conclusion Securing n8n with SSL or HTTPS is essential for protecting workflows, API keys, and sensitive automation data. By using NGINX as a reverse proxy and Let\u2019s Encrypt certificates, you can enable HTTPS quickly and safely. Combined with basic authentication and a secure VPS environment from BigCloudy, SSL ensures your self-hosted n8n instance is professional, encrypted, and ready for production use. Need Help? If you face any issues updating your nameservers or need further assistance, our support team is always available: \u00a0Email:\u00a0support@bigcloudy.com \u00a0Submit a support ticket FAQ Is SSL mandatory for n8n? SSL is not mandatory but highly recommended to protect data, credentials, and integrations. Can I use HTTPS without a custom domain? No. Let\u2019s Encrypt requires a valid domain name to issue SSL certificates. Does Let\u2019s Encrypt SSL expire? Yes. Certificates expire every 90 days but renew automatically via Certbot. Will SSL slow down n8n performance? No. HTTPS has minimal overhead and modern VPS providers like BigCloudy handle it efficiently. Can I combine SSL with IP restrictions? Yes. You can further secure n8n using firewalls, IP whitelisting, and authentication.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":16203,"menu_order":21,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-16219","docs","type-docs","status-publish","hentry","no-post-thumbnail"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.7 (Yoast SEO v26.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Secure n8n with SSL\/HTTPS on Your VPS<\/title>\n<meta name=\"description\" content=\"Learn how to secure your n8n instance with SSL\/HTTPS on BigCloudy VPS for safe and encrypted workflow automation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How do I secure n8n with SSL or HTTPS?\" \/>\n<meta property=\"og:description\" content=\"Learn how to secure your n8n instance with SSL\/HTTPS on BigCloudy VPS for safe and encrypted workflow automation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudHostGeek Help Center\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BigCloudyHosting\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-11T18:59:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f4e7.svg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@bigcloudypvtltd\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Secure n8n with SSL\/HTTPS on Your VPS","description":"Learn how to secure your n8n instance with SSL\/HTTPS on BigCloudy VPS for safe and encrypted workflow automation.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/","og_locale":"en_US","og_type":"article","og_title":"How do I secure n8n with SSL or HTTPS?","og_description":"Learn how to secure your n8n instance with SSL\/HTTPS on BigCloudy VPS for safe and encrypted workflow automation.","og_url":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/","og_site_name":"CloudHostGeek Help Center","article_publisher":"https:\/\/www.facebook.com\/BigCloudyHosting\/","article_modified_time":"2026-02-11T18:59:41+00:00","og_image":[{"url":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f4e7.svg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_site":"@bigcloudypvtltd","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/","name":"How to Secure n8n with SSL\/HTTPS on Your VPS","isPartOf":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/#primaryimage"},"image":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/#primaryimage"},"thumbnailUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f4e7.svg","datePublished":"2025-11-27T06:36:41+00:00","dateModified":"2026-02-11T18:59:41+00:00","description":"Learn how to secure your n8n instance with SSL\/HTTPS on BigCloudy VPS for safe and encrypted workflow automation.","breadcrumb":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/#primaryimage","url":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f4e7.svg","contentUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f4e7.svg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/how-do-i-secure-n8n-with-ssl-or-https\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/"},{"@type":"ListItem","position":2,"name":"Hosting FAQ","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/"},{"@type":"ListItem","position":3,"name":"N8N VPS Hosting","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/hosting-faq\/n8n-vps-hosting\/"},{"@type":"ListItem","position":4,"name":"How do I secure n8n with SSL or HTTPS?"}]},{"@type":"WebSite","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#website","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/","name":"https:\/\/www.bigcloudy.com\/","description":"Your step-by-step guide to hosting, servers &amp; website tools.","publisher":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bigcloudy.com\/knowledge-base\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#organization","name":"BigCloudy internt services pvt ltd.","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#\/schema\/logo\/image\/","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2024\/09\/cropped-BGC_logo.webp","contentUrl":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2024\/09\/cropped-BGC_logo.webp","width":368,"height":114,"caption":"BigCloudy internt services pvt ltd."},"image":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/BigCloudyHosting\/","https:\/\/x.com\/bigcloudypvtltd","https:\/\/www.instagram.com\/bigcloudypvtltd\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/16219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/comments?post=16219"}],"version-history":[{"count":0,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/16219\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/16203"}],"wp:attachment":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/media?parent=16219"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/doc_tag?post=16219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}