I need help with hosting.

The browser says my site is not secure

The warning is about the connection between the visitor and your website. It doesn't mean you've been hacked, but visitors won't fill in a form on a page marked that way, so it's worth fixing today.

Two different warnings

  • "Not secure" beside the address. The page was loaded over plain http, without encryption. The site may have a perfectly good certificate that isn't being used, or no certificate at all.
  • A full page saying "Your connection is not private", or something similar, before the site appears. The site offered a certificate and the browser rejected it. This one is more urgent, because most visitors will leave.

The five usual causes

  1. The certificate has expired

    Certificates now last months rather than years, and the longest allowed is being cut further over the next few years, so renewal has to happen automatically. It fails when the domain has been pointed somewhere else, when the site moved host, or when a renewal job quietly stopped. The host can usually reissue it in minutes.

  2. The certificate doesn't cover the name being visited

    A certificate lists the exact names it is valid for. One issued for example.co.uk doesn't cover www.example.co.uk unless it says so. The warning often mentions a name mismatch or an invalid common name.

  3. The site is still being served over http

    A certificate exists, but nothing sends visitors to the https address. The host or a setting in the website can redirect every http request to https.

  4. Mixed content

    The page itself is https, but it loads pictures, fonts or scripts over plain http. Browsers either block those or stop showing the page as secure. On WordPress, check both addresses under Settings, General start with https, and replace old http links stored in the database with a search and replace tool.

  5. The visitor's clock is wrong

    If only one person sees the warning, check the date and time on their device. A certificate looks invalid to a computer that thinks it is a different year.

Checking the certificate yourself

In most browsers, click the icon to the left of the address, then the option about the connection or the certificate. It shows who issued the certificate, the dates it is valid between, and the names it covers.

If you are comfortable with a terminal, this shows the same thing without a browser in the way:

openssl s_client -connect example.co.uk:443 -servername example.co.uk </dev/null 2>/dev/null | openssl x509 -noout -dates -subject -ext subjectAltName

Using Cloudflare

If your site is behind Cloudflare, its SSL setting matters. Flexible encrypts the connection from the visitor to Cloudflare, but not from Cloudflare to your server. It is also the usual cause of a "too many redirects" error: Cloudflare asks your server over http, the server replies "use https", and the two go round in a loop.

The setting you want is Full (strict), with a valid certificate on your server as well. Your host can install one, or Cloudflare can issue an origin certificate for the server to use.

Do I need to pay for a certificate?

Almost certainly not. Most hosts install free certificates from Let's Encrypt and renew them automatically, and they give the same padlock and the same encryption as a paid one. Browsers stopped showing the company name for the expensive kinds some years ago.

If you would rather somebody sorted it

Ask me

If you would rather this was somebody else's job, I host WordPress sites on a server I configure myself, with one named person who knows your site. Existing sites can be moved in, and moved out again if you ever leave.

WordPress hosting and care, or write to info@dalaric.com and say what's wrong.

Short answers

Questions people actually ask

Does "Not secure" mean my website has been hacked?

No. It means the connection between the visitor and the site is not properly encrypted, usually because the certificate has expired or the page was loaded over plain http. It is worth fixing today because visitors will not fill in a form on a page marked that way, but it says nothing about whether anybody has got in.

Why does my site show a certificate warning for my customer but not for me?

Check the clock on their device first: a certificate looks invalid to a computer that thinks it is a different year. After that, an old device may not trust newer certificates, or your own browser may be showing you a copy it saved before the problem started. Try a private window on your side.

I turned on HTTPS and now the site says there are too many redirects.

Almost always Cloudflare set to Flexible while the server also sends visitors to https. Cloudflare asks the server over http, the server says go to https, and round it goes. Put a valid certificate on the server and set Cloudflare to Full (strict). More on Cloudflare's modes.

Do I need to pay for an SSL certificate?

For almost every small business website, no. Free certificates from Let's Encrypt give the same padlock and the same encryption, and most hosts install and renew them automatically. Browsers stopped showing the company name for the expensive kind some years ago.

Every question on this site, in one list

My WordPress site has been hacked

The first hour, in order, and the one thing not to do.

Who actually controls your domain

Owning a domain and being able to change it are two different things.

The person who set it up has gone

How to work out where everything lives, and get it back into your name.

All nine guides