Resolving insecure site and mixed-content warnings

Overview

A common issue after adding an SSL certificate is that your browser still shows your site as insecure. This most often happens because there are links on your page that still point to HTTP instead of HTTPS. For example, look at the following code to link an image.

<img src="http://www.example.com/images/pic_mountain.jpg" alt="Mountain View">

Notice how the URL is directly linked with 'http' at the beginning. When visiting the site in Firefox, the following is displayed:

01 SSL troubleshooting.png

You can see the padlock icon in the top left of the browser shows a warning icon instead.

Browser HTTPS errors

If you attempt to connect to a site that has a missing, invalid, or self-signed SSL certificate using an HTTPS URL, your browser shows a security warning such as 'Your connection is not private' in Chrome or 'Potential Security Risk Ahead' in Firefox. In order to prevent these errors, you must either stop using the secure HTTPS URL or add a valid SSL certificate to your site. For more information on how to add an SSL certificate to your site, see the following article:

Cause of this error

If you click on the warning icon the text explains that there are 'unencrypted elements' on the page you're viewing.

From the example above, this is happening because the image was linked using 'HTTP' and not 'HTTPS'. Another way to confirm what on your site is linked insecurely is to use the following site:

Fixing unencrypted links

There are two solutions:

Use absolute links

Absolute links are the full url location to your file. This includes the domain name. For example:

<img src="https://www.example.com/images/pic_mountain.jpg" alt="Mountain View">

Just make sure you're using HTTPS when linking this way.

Use relative links

Relative links do not include the domain name. These links point to a local file instead. For example:

<img src="images/pic_mountain.jpg" alt="Mountain View">

View the following link for further details:

Resolving the warning by adding code to your .htaccess file

Instead of manually updating links in your code, you could add the following lines to your site's .htaccess file.

<ifModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

These lines force the browser to automatically update any insecure links to secure links. Once added, the warning should immediately disappear. View the following link for further details.

WordPress sites

There are a few additional steps you must take to secure a WordPress site. View the following article for a list of steps to ensure your WordPress site is using secure links in both the website files and the database.

See also

Did this article answer your questions?

Article last updated PST.