/ โ† Security Audit Fixes / SSL not working
In this guide
  1. What not working usually means
  2. The common causes
  3. How to diagnose it in five minutes
  4. Sending every visitor to https
  5. CDN and proxy settings
  6. Worked example: a GoDaddy domain on another host
  7. The fix, step by step
  8. Edge cases worth knowing
  9. Keeping HTTPS working
  10. Questions and answers

What not working usually means

People say a certificate is not working when they see one of four quite different things. Work out which one you have first, because each has its own cause.

What you seeWhat it usually means
Not secure next to an http:// addressThe page was loaded over plain HTTP. The certificate may be fine, but nothing sends visitors to https
A full-page warning such as Your connection is not privateThe certificate sent is for another name, untrusted or expired
https:// loads, but the browser says the connection is not fully secureMixed content: the page pulls images, scripts or forms over http
https:// times out or refuses to connectNothing is listening on port 443, or a firewall blocks it

Note that current Chrome no longer shows a padlock at all on secure pages. Since Chrome 117 the padlock was replaced with a neutral settings icon, so a missing padlock in Chrome is normal. What matters is whether the address starts with https and whether Chrome shows Not secure or a warning. Click the icon and choose the connection details to see whether Chrome considers the connection secure.

The common causes

CauseHow to spot itFix
No redirect from http to httpsTyping example.com opens http://example.comAdd a single 301 to https
Certificate on the wrong hostname or sitewww fails but the bare domain works, or the other way roundReissue for every name, attach to the right site
Certificate not yet issuedPanel says pending, or validation waits on an email or DNS recordComplete domain validation
Missing intermediate certificateWorks on your computer, fails on phones or in curlInstall the full chain
Mixed contenthttps loads, Console lists Mixed Content messagesChange resource URLs to https
CDN in the wrong SSL modeRedirect loop, or a 52x error page from the CDNUse Full (strict) with a valid origin certificate
DNS points at another serverCertificate shown belongs to a different hostUpdate the A or CNAME record
Cached page or old browser stateWorks in a private window or on mobile dataPurge caches, test fresh

On GoDaddy and similar hosts, the certificate product and the hosting are often separate. Buying a certificate does not install it: it must be validated, issued and then installed on the hosting plan that actually serves the domain. If the domain's DNS points somewhere else, such as another host or a site builder, the certificate on the GoDaddy plan is never used. Check the certificate's status in the account first, then confirm where the domain points.

How to diagnose it in five minutes

Open a private window so no cached redirects or old pages get in the way, then type the bare domain with no scheme. Watch where you land. Then run these commands from any terminal:

curl -sI http://example.com | grep -iE "^HTTP|^location"
curl -sI https://example.com | grep -iE "^HTTP|^location"
curl -sI https://www.example.com | grep -iE "^HTTP|^location"

The first should return 301 with a location: https://... header. If it returns 200, there is no HTTPS redirect. If the second or third fails with a certificate error, curl tells you why: a name mismatch, an expired certificate or unable to get local issuer certificate, which means the chain is incomplete.

To see the certificate the server actually sends, and whether the chain is complete:

openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
  | grep -E "subject=|issuer=|Verify return code"

Verify return code: 0 (ok) means the certificate and chain are valid for that name. Anything else names the problem. If the subject is a different domain, you are hitting the wrong server or the wrong virtual host.

Checking mixed content

Load the https page, open DevTools and look at the Console. Mixed content messages name every insecure URL. Chrome upgrades insecure images, audio and video to https automatically and blocks them if the upgrade fails, and it blocks insecure scripts, stylesheets and frames outright, which can break layouts and menus. The security audit lists mixed content across a page, along with the certificate details and redirect status.

Sending every visitor to https

Most sites that still say not secure after an install simply never redirect http to https. Add one 301 that goes straight to the final address, so http://www.example.com goes to https://example.com in a single hop.

Apache or cPanel, in .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]

nginx

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://example.com$request_uri;
}

In Plesk, open Hosting and DNS, then Hosting, and tick the permanent SEO-safe 301 redirect from HTTP to HTTPS. In cPanel, the Domains page has a Force HTTPS Redirect switch for each domain. Then update the site's own settings: in WordPress the WordPress Address and Site Address must both start with https, or the site keeps generating http links. The full set of patterns is in fixing HTTPS redirects.

โš ๏ธ If you are behind a CDN that connects to your server over plain HTTP, the server sees every request as http and a redirect rule like the one above loops forever. Fix the CDN mode first.

CDN and proxy settings

With Cloudflare or another proxy in front, there are two connections: the visitor to the CDN, and the CDN to your server. Each needs to be secure for the site to work cleanly.

Cloudflare SSL modeVisitor to CDNCDN to your serverTypical problem
OffHTTP onlyHTTPSite never loads over HTTPS
FlexibleHTTPSHTTPRedirect loop when the server also forces https
FullHTTPSHTTPS, certificate not checkedWorks, but hides an invalid origin certificate
Full (strict)HTTPSHTTPS, valid certificate requiredError 526 if the origin certificate is invalid

Use Full (strict) with either a public certificate or a Cloudflare Origin CA certificate on your server, and switch on Always Use HTTPS. Remember that an Origin CA certificate is only trusted by Cloudflare: if you later set the record to DNS only, visitors get an untrusted certificate warning. For loops between the CDN and your server, see CDN origin redirects, and for mixed content caused by a proxy, mixed content behind a proxy.

Worked example: a GoDaddy domain on another host

Example Bakery bought a certificate through its domain registrar, and the account shows it as issued. The site still opens as http://example.com with Not secure, and https://example.com shows a privacy warning.

  1. curl -sI http://example.com returns 200, so there is no redirect to https.
  2. OpenSSL against https://example.com shows a certificate for the web host's own server name, not example.com.
  3. dig +short example.com shows the domain points at a separate web host, not the registrar's hosting. The paid certificate was never installed where the site lives.
  4. The owner switches on the web host's free Let's Encrypt certificate for example.com and www.example.com in the hosting panel instead.
  5. They tick the HTTP to HTTPS redirect, change the WordPress addresses to https, and replace a hard-coded http logo URL that caused a mixed content message.
  6. A private window now lands on https://example.com, Chrome shows the connection is secure, and OpenSSL reports Verify return code: 0 (ok).

The fix, step by step

Step 1

Identify which symptom you have

Open a private window and type your bare domain with no scheme. Note whether you land on an http address marked Not secure, see a full-page warning, get an https page that is not fully secure, or time out. Repeat for www. Each symptom points to a different fix, so write down exactly what you see for each address before changing anything. A page that works in private but not in a normal window points at caching.

Step 2

Confirm the certificate is issued

Check your host or certificate account. A certificate that shows as pending or awaiting validation has not been issued and cannot work yet. Complete the validation step, which may be an email to an admin address, a DNS TXT record or a file on the site. For a free Let's Encrypt certificate in a panel, look for an error message beside the domain. Only move on once the status says issued or active.

Step 3

Check where the domain points

Run dig +short example.com and dig +short www.example.com and compare the answers with your hosting plan's IP address. If the domain points at another server, a builder or a parking page, the certificate on your plan is never reached. Either install a certificate where the site really lives or update the DNS records. Then run OpenSSL against the domain and confirm the certificate subject names your domain.

Step 4

Verify the full chain is sent

Run openssl s_client -connect example.com:443 -servername example.com and look for Verify return code: 0 (ok). A code such as 20 or 21 means the intermediate certificate is missing. Install the full chain file supplied by the authority, often called fullchain.pem or a bundle file, rather than the single certificate. Reload the web server and run the command again until it reports ok for every hostname you use.

Step 5

Add a single HTTPS redirect

Add a 301 redirect from http to https for every hostname, going straight to the final address in one hop. Use the panel's force HTTPS option, an .htaccess rule in Apache or a return 301 block in nginx. Test with curl -sI http://example.com and check for a 301 and a location header that starts with https. Follow it once more to confirm the target returns 200 rather than another redirect.

Step 6

Fix the CDN SSL mode

If the site is behind Cloudflare or another proxy, set the mode to Full (strict) and make sure the origin server has a valid certificate, either public or a Cloudflare Origin CA certificate. Avoid Flexible, which sends traffic to your server over plain HTTP and causes redirect loops when the server forces https. Switch on Always Use HTTPS in the CDN, then purge the CDN cache and test the site in a private window.

Step 7

Update the site's own address

Change the site's configured address to https in its settings. In WordPress set both the WordPress Address and Site Address under General settings, or define WP_HOME and WP_SITEURL in wp-config.php. In other systems change the base URL setting. Without this, the site keeps writing http links into pages, menus and canonical tags. Reload a page, view the source and check that internal links and the canonical tag now use https.

Step 8

Clear mixed content

Load each main template over https, open the DevTools Console and list every Mixed Content message. Change those URLs to https or to relative paths in the theme, page content or settings, and replace any third-party resource that does not support https. Search the database or content for http://example.com to catch hard-coded links. Reload until the Console is clean and the connection details say the connection is secure.

Step 9

Purge caches and test fresh

Purge every cache layer: the site's caching plugin, the host's server cache and the CDN. Then test in a private window, on mobile data and with curl, so no stored redirect or old page misleads you. Run the security audit on the main pages to confirm a valid certificate, a working redirect and no mixed content. Finally run certbot renew --dry-run or check the panel's auto-renew setting so it keeps working.

Edge cases worth knowing

Keeping HTTPS working

Once it works, add HSTS so browsers go straight to https on later visits, but only after every hostname has a valid certificate; see adding HSTS. Confirm automatic renewal is on, because a certificate that expires breaks the site in the same way as one that was never installed. Re-test with curl after any move to a new host, a DNS change or a CDN change, and run the security audit every few months to catch new mixed content from editors adding http images.

Questions and answers

1. Why is my SSL certificate not working?

Your SSL certificate is usually not working because visitors are not being sent to the https address, the certificate is on a different hostname or server from the one the domain points to, or the page loads insecure resources. Less often the certificate is still pending validation, the intermediate chain is missing, or a CDN is in the wrong mode. Test with curl and OpenSSL against both the bare domain and www, and the output will tell you which of these applies to your site.

2. Why does my site still say not secure after installing SSL?

Your site still says not secure because the page you are looking at was loaded over plain http, or because it loads some content over http. Installing a certificate does not redirect anyone. Add a 301 redirect from http to https, change the site's own address setting to https, and fix any mixed content messages shown in the browser Console. Then purge caches and test in a private window, because a cached http page can make the problem look unfixed.

3. Why is my SSL certificate not working in Chrome?

If your SSL certificate is not working in Chrome, Chrome is usually reporting a name mismatch, a missing intermediate certificate or mixed content. Read the error code on the warning page, such as NET::ERR_CERT_COMMON_NAME_INVALID for the wrong hostname or NET::ERR_CERT_AUTHORITY_INVALID for an incomplete chain. Remember that current Chrome shows a neutral icon instead of a padlock on secure sites, so a missing padlock alone is not a fault. Click the icon to see the connection details.

4. Why is my SSL certificate not working on GoDaddy?

A GoDaddy certificate most often fails because it was bought but not yet validated, installed or attached to the hosting that serves the domain. Check the certificate status in the account, complete any domain validation step, and confirm the domain's DNS points at the hosting plan where the certificate is installed. If the site is hosted elsewhere, the certificate must be installed on that host instead. After that, add the HTTPS redirect and fix mixed content as you would on any host.

5. How long does it take for an SSL certificate to start working?

An SSL certificate starts working as soon as it is issued and installed on the server that answers for the domain, normally within minutes. Free Let's Encrypt certificates in a hosting panel are usually issued in under a minute. Paid domain validated certificates can take minutes to a few hours, depending on how quickly validation is completed. Organisation validated certificates take longer because the authority checks the business. Any delay after installation is usually DNS propagation or caching rather than the certificate.

6. Can Cloudflare cause my SSL certificate to not work?

Yes, Cloudflare can cause SSL problems when its SSL mode does not suit your server. Flexible mode connects to your server over plain http, which causes redirect loops if the server forces https. Full (strict) mode needs a valid certificate on your server and shows error 526 if it is missing or expired. The fix is to install a valid origin certificate, set the mode to Full (strict), switch on Always Use HTTPS and purge the Cloudflare cache before testing again.

7. Does a not secure warning affect SEO?

A not secure warning affects SEO indirectly, because visitors leave quickly and pages served over http rather than https lose the small HTTPS ranking signal Google uses. A full certificate warning is worse: crawlers and AI agents cannot fetch the page at all. Redirecting http to https with a single 301, using https in canonical tags and sitemaps, and clearing mixed content lets search engines settle on the secure address. Google Search Console then shows the https pages as the indexed versions.

Check your certificate, redirect and mixed content

Run the security audit on your site to see the certificate the server sends, whether http redirects to https, and every insecure resource on the page in one report.

Open Security Audit Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Security Audit Fixes  ·  Fix HTTPS redirects  ·  Fix SSL errors  ·  Mixed content redirects  ·  Fix mixed content in WordPress  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.