<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: George Raphael</title>
    <description>The latest articles on Forem by George Raphael (@georgeraphael).</description>
    <link>https://forem.com/georgeraphael</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1331706%2F3c2218a0-d3bb-4025-96b7-c41b16bcae16.jpeg</url>
      <title>Forem: George Raphael</title>
      <link>https://forem.com/georgeraphael</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/georgeraphael"/>
    <language>en</language>
    <item>
      <title>How to Secure a Website with a Free SSL Certificate (Let's Encrypt)</title>
      <dc:creator>George Raphael</dc:creator>
      <pubDate>Sat, 26 Apr 2025 11:54:12 +0000</pubDate>
      <link>https://forem.com/georgeraphael/how-to-secure-a-website-with-a-free-ssl-certificate-lets-encrypt-21do</link>
      <guid>https://forem.com/georgeraphael/how-to-secure-a-website-with-a-free-ssl-certificate-lets-encrypt-21do</guid>
      <description>&lt;h2&gt;
  
  
  Why SSL? Why Now?
&lt;/h2&gt;

&lt;p&gt;You might be thinking, “But my site doesn’t handle passwords or credit cards, &lt;strong&gt;do I really need SSL?&lt;/strong&gt;”&lt;/p&gt;

&lt;p&gt;Yes. Yes, you do. Here's why:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Encryption:&lt;/strong&gt; SSL encrypts the data between your website and your visitors. That means no one can spy on what users type, view, or interact with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Trust:&lt;/strong&gt; Users trust that little padlock in the browser. Without it? Red flags everywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. SEO Boost:&lt;/strong&gt; Google prefers secure websites and ranks them higher.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Browser Warnings:&lt;/strong&gt; Modern browsers flag HTTP sites as “Not Secure.” That’s not the message you want to send.&lt;/p&gt;

&lt;p&gt;So, whether you’re building a web-based app, a WordPress blog, or the next big SaaS platform, SSL is non-negotiable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Let’s Encrypt?
&lt;/h2&gt;

&lt;p&gt;Let’s Encrypt is a non-profit certificate authority that gives you free SSL certificates. That’s right: free. As in no credit card required.&lt;/p&gt;

&lt;p&gt;Their mission is to make &lt;strong&gt;HTTPS&lt;/strong&gt; the default, and with over 300 million websites secured (and counting), they’re doing a stellar job.&lt;/p&gt;

&lt;p&gt;Best part? They make the whole process automated. Once it’s set up, renewals happen without you lifting a finger.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Benefits of Let’s Encrypt
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. It’s Free Forever&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why pay for something when you can get it free and securely? Let's Encrypt certificates are completely free—no catch, no trial, no limited version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Automated Renewal&lt;/strong&gt;&lt;br&gt;
Certificates renew every 90 days, and automation tools make sure you don’t have to remember or manually intervene.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Widely Trusted&lt;/strong&gt;&lt;br&gt;
Let’s Encrypt certificates are recognized and trusted by all modern browsers—Chrome, Safari, Firefox, you name it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Secure by Default&lt;/strong&gt;&lt;br&gt;
They use industry-standard encryption, keeping your traffic safe and sound.&lt;/p&gt;
&lt;h2&gt;
  
  
  How to Install Let’s Encrypt SSL on Your Server (Step-by-Step)
&lt;/h2&gt;

&lt;p&gt;Let’s roll up our sleeves and get this done.&lt;/p&gt;
&lt;h3&gt;
  
  
  Prerequisites:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A server (like &lt;a href="https://m.do.co/c/9c754edb9561" rel="noopener noreferrer"&gt;DigitalOcean&lt;/a&gt;, Linode, etc.)&lt;/li&gt;
&lt;li&gt;SSH access&lt;/li&gt;
&lt;li&gt;A registered domain name pointed
to your server IP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll use Certbot, the recommended tool from Let’s Encrypt.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: SSH into Your Server
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh your-user@your-server-ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Make sure your domain is already pointing to this server. If you don’t have a domain you can read this article that shows how to buy one.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Install Certbot
&lt;/h3&gt;

&lt;p&gt;For Ubuntu with Nginx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo apt install certbot python3-certbot-nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Apache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install certbot python3-certbot-apache
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Get Your SSL Certificate
&lt;/h3&gt;

&lt;p&gt;For Nginx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Apache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll be asked to provide an email for recovery and agree to terms.&lt;/p&gt;

&lt;p&gt;If everything goes well, your site will now be HTTPS-enabled!&lt;/p&gt;

&lt;h3&gt;
  
  
  Automate the Renewal
&lt;/h3&gt;

&lt;p&gt;Let’s Encrypt certs are valid for 90 days. But don’t worry—Certbot installs a cron job to renew it automatically. If you want to test it manually, you can run the following code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo certbot renew --dry-run

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Force HTTPS (Optional but Recommended)
&lt;/h3&gt;

&lt;p&gt;Make sure all HTTP traffic is redirected to HTTPS. Certbot usually does this for you, but you can double-check.&lt;/p&gt;

&lt;p&gt;For Nginx, check this block:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Apache, Certbot will handle it with a redirect rule.&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting Common Issues
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Port 80 or 443 Blocked
&lt;/h3&gt;

&lt;p&gt;Make sure your firewall allows HTTP and HTTPS traffic.&lt;/p&gt;

&lt;p&gt;sudo ufw allow 'Nginx Full' # or 'Apache Full'&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Domain Not Pointed Correctly
&lt;/h3&gt;

&lt;p&gt;Use the ping command on your terminal  ping yourdomain.com to confirm it resolves to your server IP.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Renewal Fails
&lt;/h3&gt;

&lt;p&gt;Check the logs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo cat /var/log/letsencrypt/letsencrypt.log

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  For Laravel Users: A Bonus Tip
&lt;/h2&gt;

&lt;p&gt;If you're hosting a Laravel app, modify the APP_URL to start with https. Once SSL is enabled, also consider using security headers and rate-limiting middleware to boost protection.&lt;/p&gt;

&lt;p&gt;You can even go the extra mile with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Route::middleware(['throttle:60,1', 'verified'])-&amp;gt;group(function () {
    // Secure routes here
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Combine that with HTTPS, and you’re golden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Free SSL Enough?
&lt;/h2&gt;

&lt;p&gt;Short answer: For most websites, &lt;strong&gt;YES&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Long answer: If you're handling highly sensitive data (like healthcare or banking), you might want &lt;strong&gt;Extended Validation&lt;/strong&gt; (EV) certificates. But for 95% of use cases, Let’s Encrypt is perfect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspire Confidence in Your Visitors
&lt;/h2&gt;

&lt;p&gt;A secure site isn’t just about stopping hackers—it’s about making your users feel safe, respected, and protected.&lt;/p&gt;

&lt;p&gt;And the best part? You don’t need to pay extra for that. Let’s Encrypt gives you the peace of mind and professionalism you deserve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;There’s something genuinely empowering about securing your own site—especially when you do it for free. You’re not only protecting your work but building trust with every visitor.&lt;/p&gt;

&lt;p&gt;So, whether you’re a junior dev testing things locally or a CTO overseeing production environments, remember:&lt;/p&gt;

&lt;h2&gt;
  
  
  Security is not optional, and SSL is the easiest place to start.
&lt;/h2&gt;

&lt;p&gt;You've got this—and if you ever feel stuck, I’m right here, cheering you on like a mentor in your corner.&lt;/p&gt;

&lt;p&gt;If you found this helpful, share it with a fellow dev. Or even better—go secure that site now and flex your new &lt;strong&gt;HTTPS&lt;/strong&gt; padlock like a badge of honor 😉.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source
&lt;/h2&gt;

&lt;p&gt;This post was originally posted at &lt;a href="https://vastlabs.co.tz/blog/how-to-secure-website-with-free-ssl-certificate" rel="noopener noreferrer"&gt;Vastlabs&lt;/a&gt;. If you vibe with this content, there is more where that came from.&lt;/p&gt;

&lt;p&gt;Until next time—stay curious, stay secure, and keep building! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>devops</category>
      <category>security</category>
    </item>
  </channel>
</rss>
