{"id":194,"date":"2025-09-24T16:22:40","date_gmt":"2025-09-24T16:22:40","guid":{"rendered":"https:\/\/wehaveservers.com\/blog\/?p=194"},"modified":"2025-09-24T16:22:40","modified_gmt":"2025-09-24T16:22:40","slug":"lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025","status":"publish","type":"post","link":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/","title":{"rendered":"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025)"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"403\" src=\"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt.png\" alt=\"letencrypt\" class=\"wp-image-195\" srcset=\"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt.png 768w, https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt-300x157.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p><br><br>Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025)<br><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025)<\/h1>\n\n\n\n<p>In 2025, HTTPS is no longer optional. Browsers flag HTTP as insecure, SEO rankings drop without TLS, and modern APIs often require encrypted transport. Fortunately, <strong>Let\u2019s Encrypt<\/strong> makes it easy to deploy <strong>free SSL certificates<\/strong> on your Nginx web server with automated renewal. This guide walks you through a full production-ready setup \u2014 including <strong>certbot installation, secure TLS configuration, HTTP\/2, OCSP stapling, and auto-renewal<\/strong>.<\/p>\n\n\n\n<p>Whether you\u2019re running a VPS, dedicated server, or colocated machine, Let\u2019s Encrypt allows you to <strong>deploy HTTPS at scale<\/strong> with zero cost and minimal manual work.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 Step 1: Install Certbot<\/h2>\n\n\n\n<p>Let\u2019s Encrypt certificates are obtained via the <code>certbot<\/code> client.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Ubuntu\/Debian\nsudo apt update\nsudo apt install certbot python3-certbot-nginx -y\n\n# RHEL\/CentOS\nsudo dnf install certbot python3-certbot-nginx -y\n<\/code><\/pre>\n\n\n\n<p>Verify version:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>certbot --version\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 Step 2: Prepare Nginx Server Block<\/h2>\n\n\n\n<p>Configure your site in <code>\/etc\/nginx\/sites-available\/example.conf<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    server_name example.com www.example.com;\n\n    root \/var\/www\/html;\n    index index.html index.php;\n}\n<\/code><\/pre>\n\n\n\n<p>Check config:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t\nsudo systemctl reload nginx\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 Step 3: Request SSL Certificate<\/h2>\n\n\n\n<p>Run certbot with Nginx plugin:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot --nginx -d example.com -d www.example.com\n<\/code><\/pre>\n\n\n\n<p>Certbot automatically edits your Nginx config to include SSL parameters. Certificates are stored in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/letsencrypt\/live\/example.com\/\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 Step 4: Secure TLS Configuration<\/h2>\n\n\n\n<p>Replace weak defaults with modern TLS settings (<code>\/etc\/nginx\/snippets\/ssl.conf<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssl_protocols TLSv1.3 TLSv1.2;\nssl_prefer_server_ciphers on;\nssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256';\nssl_session_cache shared:SSL:50m;\nssl_session_timeout 1d;\nssl_session_tickets off;\n\nssl_stapling on;\nssl_stapling_verify on;\nresolver 1.1.1.1 8.8.8.8 valid=300s;\n<\/code><\/pre>\n\n\n\n<p>Then reference snippet in server block:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>include snippets\/ssl.conf;\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 Step 5: Enable HTTP\/2 and Redirects<\/h2>\n\n\n\n<p>Force all traffic over HTTPS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    server_name example.com www.example.com;\n    return 301 https:\/\/$host$request_uri;\n}\n<\/code><\/pre>\n\n\n\n<p>Enable HTTP\/2 in SSL block:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>listen 443 ssl http2;\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 Step 6: Automatic Renewal<\/h2>\n\n\n\n<p>Let\u2019s Encrypt certs expire every 90 days. Certbot installs a systemd timer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl list-timers | grep certbot\n<\/code><\/pre>\n\n\n\n<p>Test renewal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot renew --dry-run\n<\/code><\/pre>\n\n\n\n<p>If using cron:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0 3 * * * certbot renew --quiet &amp;&amp; systemctl reload nginx\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 Step 7: Advanced Optimizations<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCSP Stapling<\/strong>: Reduces TLS handshake latency.<\/li>\n\n\n\n<li><strong>HSTS (Strict Transport Security)<\/strong>: Prevents downgrade attacks: <code>add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\" always;<\/code><\/li>\n\n\n\n<li><strong>IPv6<\/strong>: Ensure dual-stack support (<code>listen [::]:443 ssl http2;<\/code>).<\/li>\n\n\n\n<li><strong>Certbot Hooks<\/strong>: Run post-renew scripts, e.g. reload HAProxy or restart Docker containers.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd39 Step 8: Monitoring &amp; Troubleshooting<\/h2>\n\n\n\n<p>Check logs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>journalctl -u certbot\n<\/code><\/pre>\n\n\n\n<p>Use <a href=\"https:\/\/www.ssllabs.com\/ssltest\/\">SSL Labs<\/a> to scan your domain and target an A+ rating.<\/p>\n\n\n\n<p>Common errors:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DNS misconfigured<\/strong>: Ensure domain resolves to VPS IP.<\/li>\n\n\n\n<li><strong>Port 80 blocked<\/strong>: Let\u2019s Encrypt requires port 80 for HTTP challenge.<\/li>\n\n\n\n<li><strong>Rate limits<\/strong>: 50 certificates\/week per domain.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Conclusion<\/h2>\n\n\n\n<p>With Let\u2019s Encrypt and Nginx, deploying HTTPS is free, automated, and secure. By combining <strong>certbot automation, hardened TLS configuration, HTTP\/2, OCSP stapling, and auto-renewal<\/strong>, you ensure continuous SSL coverage without manual intervention. In 2025, this setup is not just best practice \u2014 it\u2019s a baseline requirement. At <strong>WeHaveServers.com<\/strong>, we deploy Let\u2019s Encrypt SSL by default for all hosted services, ensuring client applications are <strong>secure, compliant, and SEO-friendly<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2753 FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Is Let\u2019s Encrypt really free?<\/h3>\n\n\n\n<p>Yes, it\u2019s completely free, backed by the Internet Security Research Group (ISRG).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How often do I need to renew certificates?<\/h3>\n\n\n\n<p>Every 90 days. Certbot automates this process via cron or systemd timers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I use Let\u2019s Encrypt for wildcard domains?<\/h3>\n\n\n\n<p>Yes, via DNS challenge. Example: <code>*.example.com<\/code> requires API access to your DNS provider.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does Let\u2019s Encrypt support TLS 1.3?<\/h3>\n\n\n\n<p>Yes, and it should always be enabled for modern browsers and APIs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I use Let\u2019s Encrypt in production?<\/h3>\n\n\n\n<p>Absolutely. Millions of businesses rely on it. Just ensure proper monitoring of renewals.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) In 2025, HTTPS is no longer optional. Browsers flag HTTP as insecure, SEO rankings drop without TLS, and modern APIs often require encrypted transport. Fortunately, Let\u2019s Encrypt makes it easy to deploy free SSL certificates on your [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":195,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[102,101,100,105,106,103,104],"class_list":["post-194","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux-sysadmin","tag-certbot-auto-renew","tag-free-ssl-nginx","tag-letsencrypt-nginx-2025","tag-nginx-hsts","tag-nginx-ssl-best-practices","tag-nginx-tls-configuration","tag-ocsp-stapling"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) - Blog | WeHaveServers.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) - Blog | WeHaveServers.com\" \/>\n<meta property=\"og:description\" content=\"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) In 2025, HTTPS is no longer optional. Browsers flag HTTP as insecure, SEO rankings drop without TLS, and modern APIs often require encrypted transport. Fortunately, Let\u2019s Encrypt makes it easy to deploy free SSL certificates on your [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog | WeHaveServers.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/WeHaveServers\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-24T16:22:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt.png\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"403\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"WHS\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@WeHaveServers\" \/>\n<meta name=\"twitter:site\" content=\"@WeHaveServers\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"WHS\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/\"},\"author\":{\"name\":\"WHS\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#\\\/schema\\\/person\\\/f90cd2ad6ce12bb915c1d00a4770dad0\"},\"headline\":\"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025)\",\"datePublished\":\"2025-09-24T16:22:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/\"},\"wordCount\":464,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/letencrypt.png\",\"keywords\":[\"certbot auto renew\",\"free ssl nginx\",\"letsencrypt nginx 2025\",\"nginx hsts\",\"nginx ssl best practices\",\"nginx tls configuration\",\"ocsp stapling\"],\"articleSection\":[\"Linux &amp; SysAdmin\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/\",\"url\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/\",\"name\":\"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) - Blog | WeHaveServers.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/letencrypt.png\",\"datePublished\":\"2025-09-24T16:22:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/letencrypt.png\",\"contentUrl\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/letencrypt.png\",\"width\":768,\"height\":403,\"caption\":\"letencrypt\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/linux-sysadmin\\\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/\",\"name\":\"Blog | WeHaveServers.com\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#organization\",\"name\":\"THC Projects SRL\",\"url\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/whs-logo-blog.png\",\"contentUrl\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/whs-logo-blog.png\",\"width\":1080,\"height\":147,\"caption\":\"THC Projects SRL\"},\"image\":{\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/WeHaveServers\\\/\",\"https:\\\/\\\/x.com\\\/WeHaveServers\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/#\\\/schema\\\/person\\\/f90cd2ad6ce12bb915c1d00a4770dad0\",\"name\":\"WHS\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e91dfeb1f75c7c898bf30d2646330952683ff1e2646cf0ac34c4a6963c2175ce?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e91dfeb1f75c7c898bf30d2646330952683ff1e2646cf0ac34c4a6963c2175ce?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e91dfeb1f75c7c898bf30d2646330952683ff1e2646cf0ac34c4a6963c2175ce?s=96&d=mm&r=g\",\"caption\":\"WHS\"},\"sameAs\":[\"https:\\\/\\\/wehaveservers.com\\\/blog\"],\"url\":\"https:\\\/\\\/wehaveservers.com\\\/blog\\\/author\\\/wehaveservers\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) - Blog | WeHaveServers.com","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:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/","og_locale":"en_US","og_type":"article","og_title":"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) - Blog | WeHaveServers.com","og_description":"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) In 2025, HTTPS is no longer optional. Browsers flag HTTP as insecure, SEO rankings drop without TLS, and modern APIs often require encrypted transport. Fortunately, Let\u2019s Encrypt makes it easy to deploy free SSL certificates on your [&hellip;]","og_url":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/","og_site_name":"Blog | WeHaveServers.com","article_publisher":"https:\/\/www.facebook.com\/WeHaveServers\/","article_published_time":"2025-09-24T16:22:40+00:00","og_image":[{"width":768,"height":403,"url":"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt.png","type":"image\/png"}],"author":"WHS","twitter_card":"summary_large_image","twitter_creator":"@WeHaveServers","twitter_site":"@WeHaveServers","twitter_misc":{"Written by":"WHS","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/#article","isPartOf":{"@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/"},"author":{"name":"WHS","@id":"https:\/\/wehaveservers.com\/blog\/#\/schema\/person\/f90cd2ad6ce12bb915c1d00a4770dad0"},"headline":"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025)","datePublished":"2025-09-24T16:22:40+00:00","mainEntityOfPage":{"@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/"},"wordCount":464,"commentCount":0,"publisher":{"@id":"https:\/\/wehaveservers.com\/blog\/#organization"},"image":{"@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/#primaryimage"},"thumbnailUrl":"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt.png","keywords":["certbot auto renew","free ssl nginx","letsencrypt nginx 2025","nginx hsts","nginx ssl best practices","nginx tls configuration","ocsp stapling"],"articleSection":["Linux &amp; SysAdmin"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/","url":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/","name":"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025) - Blog | WeHaveServers.com","isPartOf":{"@id":"https:\/\/wehaveservers.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/#primaryimage"},"image":{"@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/#primaryimage"},"thumbnailUrl":"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt.png","datePublished":"2025-09-24T16:22:40+00:00","breadcrumb":{"@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/#primaryimage","url":"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt.png","contentUrl":"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2025\/09\/letencrypt.png","width":768,"height":403,"caption":"letencrypt"},{"@type":"BreadcrumbList","@id":"https:\/\/wehaveservers.com\/blog\/linux-sysadmin\/lets-encrypt-on-nginx-free-ssl-with-auto-renew-2025\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wehaveservers.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Let\u2019s Encrypt on Nginx: Free SSL with Auto-Renew (2025)"}]},{"@type":"WebSite","@id":"https:\/\/wehaveservers.com\/blog\/#website","url":"https:\/\/wehaveservers.com\/blog\/","name":"Blog | WeHaveServers.com","description":"","publisher":{"@id":"https:\/\/wehaveservers.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wehaveservers.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wehaveservers.com\/blog\/#organization","name":"THC Projects SRL","url":"https:\/\/wehaveservers.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wehaveservers.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2024\/07\/whs-logo-blog.png","contentUrl":"https:\/\/wehaveservers.com\/blog\/wp-content\/uploads\/2024\/07\/whs-logo-blog.png","width":1080,"height":147,"caption":"THC Projects SRL"},"image":{"@id":"https:\/\/wehaveservers.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/WeHaveServers\/","https:\/\/x.com\/WeHaveServers"]},{"@type":"Person","@id":"https:\/\/wehaveservers.com\/blog\/#\/schema\/person\/f90cd2ad6ce12bb915c1d00a4770dad0","name":"WHS","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/e91dfeb1f75c7c898bf30d2646330952683ff1e2646cf0ac34c4a6963c2175ce?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e91dfeb1f75c7c898bf30d2646330952683ff1e2646cf0ac34c4a6963c2175ce?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e91dfeb1f75c7c898bf30d2646330952683ff1e2646cf0ac34c4a6963c2175ce?s=96&d=mm&r=g","caption":"WHS"},"sameAs":["https:\/\/wehaveservers.com\/blog"],"url":"https:\/\/wehaveservers.com\/blog\/author\/wehaveservers\/"}]}},"_links":{"self":[{"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/posts\/194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/comments?post=194"}],"version-history":[{"count":1,"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/posts\/194\/revisions"}],"predecessor-version":[{"id":196,"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/posts\/194\/revisions\/196"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/media\/195"}],"wp:attachment":[{"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/media?parent=194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/categories?post=194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wehaveservers.com\/blog\/wp-json\/wp\/v2\/tags?post=194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}