How to Install Your FREE Namecheap SSL Certificate

by

Hey there! Some links on this page may be affiliate links which means that, if you choose to make a purchase, I may earn a small commission at no extra cost to you. I greatly appreciate your support!

It’s surprisingly easy to install an SSL certificate for your website on shared hosting with NameCheap. I’ve manually installed many SSL certificates in the past, and let me tell you it’s never been easier to do.

In this tutorial, I’m going to show you everything you need to do to make your WordPress website secure with HTTPS. Watch below, follow along, and you’ll have your free SSL certificate installed on NameCheap in no time at all.

YouTube video

How to Install SSL on NameCheap

From your cPanel, click on NameCheap SSL right at the top under the Exclusive for NameCheap Customers section. Click on the button to sign in to your NameCheap account.

On the resulting screen, you’ll see that you are eligible to install a PositiveSSL certificate for your website.

Click on the Install button.

Replace default SSL certificate on NameCheap

In some cases, NameCheap might already have installed a default SSL certificate on your domain. You might get a warning asking you if you’d like to replace the existing SSL certificate. If so, click on Yes to replace.

Next, fill in an email address that you want to use for the admin account. The admin email will be the email address that receives a copy of your SSL certificate files, intermediate certificate, and CA bundle. If you followed the previous tutorial on setting up a custom email address with NameCheap, I suggest you use one of those email addresses here.

Finally, in order to install the certificate, simply click on Install Certificate. You notice on the next page that the status of the SSL certificate install is in progress. Within a few minutes, you can refresh the page and you’ll see the certificate installed and active.

Enable HTTPS on NameCheap

After successfully installing your PositiveSSL certificate, you’ll want to enable an HTTPS redirect on NameCheap so all traffic to your WordPress website gets redirected to https://yourdomain.com and not http://yourdomain.com.

Without this redirect option enabled, you’ll have two versions of your website—an unsecure HTTP version and a secure HTTPS version. Since we want all visitors to use the HTTPS version of your WordPress website, we must redirect HTTP to HTTPS.

Don’t worry because again NameCheap makes this super easy. All you have to do is toggle the option that says HTTPS Redirect associated with your SSL certificate.

Enable WordPress HTTPS on NameCheap

In doing so, NameCheap will add HTTPS for all visitors and, in essence, force SSL on your WordPress website.

To test this out, navigate to any one of the following URLs and you will be redirected the HTTPS version of your website.

  • yourdomain.com
  • www.yourdomain.com
  • https://yourdomain.com
  • https://www.yourdomain.com

WordPress HTTPS Settings

We’re almost done, but first we must configure a few WordPress HTTPS settings.

After following the steps from above, login to your WordPress admin panel. On the left hand side, click on General under Settings. Here, you will want to change both the WordPress Address (URL) and Site Address (URL) from http://yourdomain.com to https://yourdomain.com.

WordPress HTTPS settings

Although this next step isn’t related to SSL certs or HTTPS, I recommend that you also change your timezone from the default UTC+0 while your in here.

When you have made these changes, click on Save Changes at the bottom.

At this point, you now have an SSL certificate installed and working on your NameCheap WordPress website.

Free NameCheap SSL Certificate

With every NameCheap shared web hosting account, you get a free SSL certificate. In fact, you get up to 50 free PositiveSSL certificates to use on multiple websites for the first year. These free NameCheap SSL certificates are PositiveSSL certs from Comodo. Domain validation is the methodology used to validate ownership.

While the SSL certificate is free for the first year only, this NameCheap promotion have a value of $8.88. Every year after the initial year of hosting, you’ll have to renew and reinstall your SSL certificate and pay for another year.

This free PositiveSSL certificate from NameCheap is perfect for personal websites and blogs. You’ll get the green bar and lock next to your website address. Perhaps more importantly, you’ll have a secure website which Google and other search engines now give stronger weight to when displaying search results.

UP NEXT: WordPress Theme Install

Now that your WordPress site is secured with an SSL certificate, let’s look at installing and customizing a WordPress theme.

In the next part of this WordPress tutorial series, we’ll be looking at installing GeneratePress—a lightweight and blazing fast WordPress theme. Although this is a premium theme that costs money, I highly recommend this theme to make your website load fast. Not only will Google favor your website because it’s secure, but it will also favor your website because it loads fast.

As always, if you have any questions about installing an SSL certificate on your WordPress website, let me know in the comments below. I’ll be more than happy to help you out.


Meet Tony

With a background in computer science and engineering, Tony is determined to demystify the web. Discover why Tony is pursuing this mission. You can also connect with Tony here.

8 thoughts on “How to Install Your FREE Namecheap SSL Certificate”

  1. during the process of installing ssl for my site. When i restart the nginx with, sudo service nginx restart, I’am facing with this error
    nginx: [emerg] “location” directive is not allowed here in /etc/nginx/conf.d/wordpress_http.conf:23
    nginx: configura

    Reply
      • Files http.conf.d

        upstream php-handler-http {
        	server 127.0.0.1:9000;
        }
        
        server {
                listen 80;
                server_name truyenfox.com www.truyenfox.com;
                return 301 https://truyenfox.com$request_uri;
        }
        	root /home/tonyflor/domains/tonyteaches.tech/public_html/;
        	index index.php;
        
        	# set max upload size
        	client_max_body_size 2G;
        	fastcgi_buffers 64 4K;
        
        	access_log /var/log/nginx/wordpress_http_access.log combined;
        	error_log /var/log/nginx/wordpress_http_error.log;
        
        	server_tokens off;
        
        	location = /favicon.ico {
        		log_not_found off;
        		access_log off;
        	}
        
        	location = /robots.txt {
        		allow all;
        		log_not_found off;
        		access_log off;
        	}
        
        	location / {
        		try_files $uri $uri/ /index.php?$args ;
        	}
        
        	# protected area (XHProf)
        	location ^~ /xhprof/xhprof_html/ {
        		auth_basic "Restricted";
        		auth_basic_user_file /etc/nginx/htpasswd/xhprof;
        
        		location ~ \.php(?:$|/) {
        		  fastcgi_split_path_info ^(.+\.php)(/.+)$;
        		  include fastcgi_params;
        		  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        		  fastcgi_param PATH_INFO $fastcgi_path_info;
        		  fastcgi_param PHP_FLAG "session.auto_start=off \n mbstring.encoding_translation=off";
        		  fastcgi_param PHP_VALUE "assert.active=0 \n mbstring.http_input=pass \n mbstring.http_output=pass";
        		  fastcgi_pass php-handler-http ;
        		  fastcgi_read_timeout 60s;
        		}
        	}
        
        	# protected area (phpmyadmin)
        	location ^~ /mysqladmin/ {
        		auth_basic "Restricted";
        		auth_basic_user_file /etc/nginx/htpasswd/phpmyadmin;
        
        		location ~ \.php(?:$|/) {
        		  fastcgi_split_path_info ^(.+\.php)(/.+)$;
        		  include fastcgi_params;
        		  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        		  fastcgi_param PATH_INFO $fastcgi_path_info;
        		  fastcgi_param PHP_FLAG "session.auto_start=off \n mbstring.encoding_translation=off";
        		  fastcgi_param PHP_VALUE "assert.active=0 \n mbstring.http_input=pass \n mbstring.http_output=pass";
        		  fastcgi_pass php-handler-http ;
        		  fastcgi_read_timeout 60s;
        		}
        	}
        
        	location ~* \.(htaccess|htpasswd) {
        		deny all;
        	}
        
        	location ~ \.php(?:$|/) {
        		fastcgi_split_path_info ^(.+\.php)(/.+)$;
        		include fastcgi_params;
        		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        		fastcgi_param PATH_INFO $fastcgi_path_info;
        		fastcgi_param PHP_VALUE "auto_prepend_file=/home/tonyflor/domains/tonyteaches.tech/public_html/xhprof/external/header.php";
        		fastcgi_pass php-handler-http;
        		fastcgi_read_timeout 60s;
        	}
        
        	# set long EXPIRES header on static assets
        	location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
        		expires 30d;
        		access_log off;
        	}
        
        }
        
        
        files: https conf.d
        
        upstream php-handler-https {
        	server 127.0.0.1:9000;
        }
        
        server {
        
        listen 443 ssl;
        
        ssl_certificate /path/to/certificate/truyenfox_com_chain.crt;
        
        ssl_certificate_key /path/to/server.key;
        
        root /path/to/webroot;
        
        server_name truyenfox.com www.truyenfox.com;
        
        }
        
        	root /home/tonyflor/domains/tonyteaches.tech/public_html/;
        	index index.php;
        
        	# set max upload size
        	client_max_body_size 2G;
        	fastcgi_buffers 64 4K;
        
        	access_log /var/log/nginx/wordpress_https_access.log combined;
        	error_log /var/log/nginx/wordpress_https_error.log;
        
        	server_tokens off;
        
        	location = /favicon.ico {
        		log_not_found off;
        		access_log off;
        	}
        
        	location = /robots.txt {
        		allow all;
        		log_not_found off;
        		access_log off;
        	}
        
        	location / {
        		try_files $uri $uri/ /index.php?$args ;
        	}
        
        	# protected area (XHProf)
        	location ^~ /xhprof/xhprof_html/ {
        		auth_basic "Restricted";
        		auth_basic_user_file /etc/nginx/htpasswd/xhprof;
        
        		location ~ \.php(?:$|/) {
        		  fastcgi_split_path_info ^(.+\.php)(/.+)$;
        		  include fastcgi_params;
        		  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        		  fastcgi_param PATH_INFO $fastcgi_path_info;
        		  fastcgi_param PHP_FLAG "session.auto_start=off \n mbstring.encoding_translation=off";
        		  fastcgi_param PHP_VALUE "assert.active=0 \n mbstring.http_input=pass \n mbstring.http_output=pass";
        		  fastcgi_pass php-handler-http ;
        		  fastcgi_read_timeout 60s;
        		}
        	}
        
        	# protected area (phpmyadmin)
        	location ^~ /mysqladmin/ {
        		auth_basic "Restricted";
        		auth_basic_user_file /etc/nginx/htpasswd/phpmyadmin;
        
        		location ~ \.php(?:$|/) {
        		  fastcgi_split_path_info ^(.+\.php)(/.+)$;
        		  include fastcgi_params;
        		  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        		  fastcgi_param PATH_INFO $fastcgi_path_info;
        		  fastcgi_param PHP_FLAG "session.auto_start=off \n mbstring.encoding_translation=off";
        		  fastcgi_param PHP_VALUE "assert.active=0 \n mbstring.http_input=pass \n mbstring.http_output=pass";
        		  fastcgi_pass php-handler-http ;
        		  fastcgi_read_timeout 60s;
        		}
        	}
        
        	location ~* \.(htaccess|htpasswd) {
        		deny all;
        	}
        
        	location ~ \.php(?:$|/) {
        		fastcgi_split_path_info ^(.+\.php)(/.+)$;
        		include fastcgi_params;
        		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        		fastcgi_param PATH_INFO $fastcgi_path_info;
        		fastcgi_param HTTPS on;
        		fastcgi_param PHP_VALUE "auto_prepend_file=/home/tonyflor/domains/tonyteaches.tech/public_html/xhprof/external/header.php";
        		fastcgi_pass php-handler-https;
        		fastcgi_read_timeout 60s;
        	}
        
        	# set long EXPIRES header on static assets
        	location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
        		expires 30d;
        		access_log off;
        	}
        
        }
        Reply

Leave a Comment