Your simple guide to web hosting.

Troubleshooting: "My SSL certificate isn't working." (for Noobs)

Introduction

You've heard SSL certificates are important for https:// and that little padlock icon, so you tried to set one up. But now you're seeing "Not Secure" warnings, "Your connection is not private" errors, or other SSL-related problems. What's going on?

This guide will help noobs troubleshoot common reasons why an SSL certificate might not be working correctly.

What you'll achieve: You'll learn to identify and fix common SSL certificate issues. Prerequisites: * You have attempted to install an SSL certificate (e.g., a free Let's Encrypt one from your host). * Access to your web hosting control panel.

Common SSL Issues and Troubleshooting Steps

  1. SSL Certificate Not Actually Installed or Activated

    • The Issue: You might think SSL is set up, but the certificate was never properly installed or activated for your specific domain/subdomain.
    • How to Check/Fix:
      • Log in to your hosting control panel (cPanel, Plesk, etc.).
      • Navigate to the SSL/TLS management area (often called "SSL/TLS Status," "Let's Encrypt SSL," or similar).
      • Check the status for your domain (and www.yourdomain.com if you use it). Does it show an active certificate?
      • If not, there should be an option to "Install," "Issue," or "Run AutoSSL." Follow the prompts. Most hosts make this a one or two-click process for Let's Encrypt.
      • Wait a few minutes after installation for it to take effect.
  2. DNS Propagation Delay (Again!)

    • The Issue: If you just installed the SSL certificate, or made recent DNS changes (like pointing your domain to a new host where SSL is set up), the DNS records associated with SSL validation might not have fully propagated across the internet.
    • How to Check/Fix:
      • Wait: Similar to domain pointing, SSL-related DNS changes can take a few hours to fully propagate.
      • Clear your browser cache and local DNS cache (see "My domain isn't working" for how).
      • Try an incognito browser window.
  3. Mixed Content Errors (Very Common!)

    • The Issue: Your main HTML page is loading securely over https://, but some resources on that page (images, CSS files, JavaScript files, fonts, iframe content) are still being called using insecure http:// links. This creates "mixed content."
    • Symptoms: Your site might load, but the padlock is missing, or it shows a warning (like a broken padlock or an "i" symbol). The browser console will show "Mixed Content" warnings.
    • How to Check/Fix:
      • Browser Developer Tools:
        • Right-click on your page, select "Inspect."
        • Go to the "Console" tab. Look for errors starting with "Mixed Content: The page at 'https://yourdomain.com' was loaded over HTTPS, but requested an insecure resource 'http://...'. This request has been blocked; the content must be served over HTTPS."
      • Update Your Links: You need to find all http:// links in your website's code (HTML, CSS, JavaScript) that point to assets on your own site and change them to https:// or use relative paths.
        • Example: Change <img src="http://yourdomain.com/images/logo.png"> to <img src="https://yourdomain.com/images/logo.png"> or, even better, to a relative path like /images/logo.png or images/logo.png.
      • WordPress Tip: If you use WordPress, a plugin like "Really Simple SSL" can often fix mixed content issues automatically by rewriting URLs. You can also do a search-and-replace in your database (carefully, or with a plugin like "Better Search Replace") to change http://yourdomain.com to https://yourdomain.com.
      • External Content: If you're embedding content from other sites (like a YouTube video via an http:// link), try to find an https:// version of that embed code.
  4. Website Not Forced to Use HTTPS

    • The Issue: Your SSL certificate might be installed correctly, but your website isn't automatically redirecting all http:// traffic to https://. So, visitors (or search engines) might still be accessing the insecure version.
    • How to Check/Fix:
      • Type http://yourdomain.com (without the 's') into your browser. Does it automatically change to https://yourdomain.com? If not, you need to set up a redirect.
      • WordPress:
        • In your WordPress Dashboard, go to Settings > General. Ensure both "WordPress Address (URL)" and "Site Address (URL)" start with https://.
        • Plugins like "Really Simple SSL" can also handle this redirection.
      • Via .htaccess file (for Apache servers - common on shared hosting):
        • This is a bit more advanced. You can add rules to a file named .htaccess in your website's root directory (public_html). Backup your .htaccess file before editing it!
        • A common rule is: apache RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
        • If you're not comfortable with this, ask your host for help or use a WordPress plugin.
      • Via Hosting Control Panel: Some hosts offer a "Force HTTPS" toggle in their control panel.
  5. SSL Certificate Covers Domain but Not Subdomains (or vice-versa)

    • The Issue: A standard SSL certificate might cover yourdomain.com but not www.yourdomain.com (or other subdomains like blog.yourdomain.com), or vice-versa.
    • How to Check/Fix:
      • When installing your Let's Encrypt certificate via your host, ensure it covers both the non-www (yourdomain.com) and www (www.yourdomain.com) versions if you use both. Most modern installers handle this.
      • If you need SSL for other subdomains, you might need to issue separate certificates for them or get a "wildcard" SSL certificate (usually a paid option, but Let's Encrypt can issue wildcard certs too, though setup might be more complex via some control panels).
  6. Expired SSL Certificate

    • The Issue: SSL certificates have an expiry date. While Let's Encrypt certificates are short-lived (90 days), hosts usually auto-renew them. If auto-renewal fails, your certificate can expire.
    • How to Check/Fix:
      • Click the padlock (or warning icon) in your browser's address bar when on your site. You can usually view certificate details, including its validity period.
      • Check your hosting control panel's SSL section. If expired, try to manually renew or reissue it. Contact your host if auto-renewal failed.

When to Contact Support

If you've tried these steps and are still having SSL issues: * Contact your web hosting support. They can check the server-side SSL configuration, help diagnose mixed content if you can't find it, and ensure the certificate is correctly installed and assigned to your domain.

Conclusion

SSL issues can be tricky, but "mixed content" and ensuring the certificate is actually installed and active for the correct domain variations are the most common culprits for noobs. Using browser developer tools is key to finding mixed content. Don't be afraid to lean on your host's support for SSL problems!