[Quick Guide] - How to install SSL on a wordpress site for free in minutes

moonlighsunligh

Elite Member
Joined
May 1, 2010
Messages
2,442
Reaction score
470
For those who do not know how to install ssl on your wordpress site, here is how to do this in just a few minutes(in most cases) and for free:

- Installing SSL
1) Install plugin WP-Encrypt, activate it and go to the settings page.
2) Fill in all the fields, make sure to check Auto-generate Certificate.
3) Click register account
4)Click register cetrificate.
Now you have your SSL installed on this domain!


- Changing site's urls to https
1) Change wordpress site base urls from http://domain.com to https://domain.com at /wp-admin/options-general.php (WordPress Address and Site Address)
2) Install plugin WP Force SSL and install it (it redirects old urls with new urls using 301 redirect)
Now you have your redirect all urls from http to https (which solves many problems)!

- Resolve mixed content problems
1) See the source pages of your pages and search for "http://".
2) If there is any image (http://something.jpg or any other image extension) or javascript file (http://something.js) you need to change all these to https otherwise some browser will still think it is not a secure page.
3) They can be in content or in a template or css. If they are in content (assuming you have posts on the site) replace them manually or using plugin "better search and replace". If they are in a template you have to edit the template but this is quite rare.
4) You could even have the http in css, so download file style.css and then do the same search as in 1)
5) Once you remove all the http from the content it is ok, test the site in internet explorer 9+. If it doesn't show any message you are good to go.
6) If you still have http in source code and you cannot remove them it is possible they are in wp_head. So replace the urls by placing code from this page (last answer) in the function.php file. You basically use this code in a bit different way:
PHP:
function ad_filter_wp_head_output($output) {
        $output = str_ireplace('http://"',"https://'', $output);
    return $output;
}

This should adress everything. It seems a bit long that few minutes, but usually you won't have problem with mixed content.
 
Back
Top