{"id":2800,"date":"2018-06-12T09:23:37","date_gmt":"2018-06-12T04:23:37","guid":{"rendered":"https:\/\/stylemixthemes.com\/wp\/?p=2800"},"modified":"2022-07-06T10:47:40","modified_gmt":"2022-07-06T05:47:40","slug":"free-ssl-certificate-https-wordpress","status":"publish","type":"post","link":"https:\/\/stylemixthemes.com\/wp\/free-ssl-certificate-https-wordpress\/","title":{"rendered":"How to Get a Free SSL Certificate and HTTPS for WordPress"},"content":{"rendered":"<p>An SSL certificate secures your website by encrypting the connection between your website and the end user.<\/p>\n<p>Since <a href=\"https:\/\/www.zdnet.com\/article\/chrome-is-the-most-popular-web-browser-of-all\/\" target=\"_blank\" rel=\"noopener noreferrer\">58.4% of users primarily or solely use the Chrome browser<\/a>, it&#8217;s important to be sure your WordPress website is secure with SSL and HTTPS to help visitors trust your website.<\/p>\n<p>Obtaining an SSL certificate can be quick and free. <a href=\"https:\/\/letsencrypt.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Let\u2019s Encrypt<\/a> is a prominent and trusted provider of free SSL certificates through the help of the automated client <a href=\"https:\/\/certbot.eff.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot<\/a>.<\/p>\n<p>Today, I\u2019ll share more detail on SSL, HTTPS, <a href=\"https:\/\/letsencrypt.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Let\u2019s Encrypt<\/a> and <a href=\"https:\/\/certbot.eff.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot<\/a> as well as how to manually install, manage, and renew a free SSL certificate on your web server to secure your WordPress website so it displays error-free in Chrome.<\/p>\n<h2>What is SSL and HTTPS, and Why Do I Need It?<\/h2>\n<p>An SSL certificate is a public digital document issued by a Certificate Authority (CA) for a domain name that binds a cryptographic key to its attached website.<\/p>\n<p>All websites with a valid SSL certificate use HTTPS and SSL protocol, which encrypts communication between the website\u2019s server and end user\u2019s browser.<\/p>\n<p>Having a valid SSL certificate for your website confirms that your site is trustworthy for users to enter information as opposed to a website simply posing with \u201chttps\u201d in their URL. It also prevents hackers from hijacking the connection to obtain unauthorized access.<\/p>\n<p>For details, check out <a href=\"https:\/\/stylemixthemes.com\/wp\/https-ssl-wordpress-essential\/\">Why HTTPS and SSL for WordPress Websites are Absolutely Essential<\/a>.<\/p>\n<h2>What is Let\u2019s Encrypt?<\/h2>\n<p><a href=\"https:\/\/letsencrypt.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Let\u2019s Encrypt<\/a> is a automated CA provided by the Internet Security Research Group (ISRG), a non-profit that\u2019s dedicated to making the internet a more secure place. Let\u2019s Encrypt only issues free SSL certificates, and the process is expedited by running a certificate management agent on the web server.<\/p>\n<h3>Types of Certificates<\/h3>\n<p><a href=\"https:\/\/letsencrypt.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Let\u2019s Encrypt<\/a> authenticates a Domain Validation (DV) certificate, which is the lowest level certificate a CA offers, and only confirms that a website owns the domain name to which it claims.<\/p>\n<p>As of January 2018, <a href=\"https:\/\/stylemixthemes.com\/wp\/lets-encrypt-wildcard-certificates-are-now-available\/\" rel=\"noopener\">Let\u2019s Encrypt also offers a wildcard certificate<\/a>, which allows you to secure all subdomains of a website with a single certificate. For example, <em>info.example.com<\/em> and <em>about.example.com<\/em>.<\/p>\n<p>You also must have the specific ACMEv2 protocol and as a result, a client that has been updated to support ACMEv2.<\/p>\n<p>For details, check out <a href=\"https:\/\/letsencrypt.org\/docs\/client-options\/\" target=\"_blank\" rel=\"noopener noreferrer\">ACME Client Implementations<\/a>.<\/p>\n<p><a href=\"https:\/\/letsencrypt.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Let\u2019s Encrypt<\/a> certificates are valid for 90 days, no exceptions, and they recommend renewal every 60 days so you have 30 days to work out any possible issues. Although, it\u2019s possible to configure automatic renewal, depending on your server.<\/p>\n<h2>How to Get a Certificate<\/h2>\n<p>The easiest way to obtain a free SSL certificate from Let\u2019s Encrypt is through your web hosting.<\/p>\n<p><a href=\"https:\/\/community.letsencrypt.org\/t\/web-hosting-who-support-lets-encrypt\/6920\" target=\"_blank\" rel=\"noopener noreferrer\">Let\u2019s Encrypt has partnered with many web hosts<\/a> as well as a number of providers that enable Let\u2019s Encrypt and redirect to HTTPS by default.<\/p>\n<p>If your hosting service isn\u2019t aware of Let\u2019s Encrypt, you can contact them and let them know it\u2019s an option.<\/p>\n<p>If your hosting service doesn\u2019t have compatibility, one of the easiest ways to put a Let\u2019s Encrypt free SSL Certificate on your web server is with <a href=\"https:\/\/certbot.eff.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot<\/a>, which is an automatic client that fetches and deploys your SSL certificate on your web server.<\/p>\n<p>According to the <a href=\"https:\/\/certbot.eff.org\/docs\/\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot documentation<\/a>, \u201cCertbot aims to build a network that is more structurally private, safe and protected against censorship.\u201d<\/p>\n<figure id=\"attachment_2801\" aria-describedby=\"caption-attachment-2801\" style=\"width: 1400px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2801\" src=\"https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot.png\" alt=\"Certbot website\" width=\"1400\" height=\"766\" srcset=\"https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot.png 1400w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-300x164.png 300w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-768x420.png 768w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-1024x560.png 1024w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-395x216.png 395w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-825x451.png 825w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-790x432.png 790w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-55x30.png 55w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-150x82.png 150w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-548x300.png 548w, https:\/\/stylemixthemes.com\/wp\/wp-content\/uploads\/sites\/2\/2018\/07\/Certbot-50x27.png 50w\" sizes=\"auto, (max-width: 1400px) 100vw, 1400px\" \/><figcaption id=\"caption-attachment-2801\" class=\"wp-caption-text\">Certbot provides easy to use instructions based upon your software and operating system.<\/figcaption><\/figure>\n<h3>Installing Certbot<\/h3>\n<p>Certbot is packaged for a variety of different operating systems and servers. The best way to figure out an ideal setup is to go to <a href=\"https:\/\/certbot.eff.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot\u2019s website<\/a> and read the specific installation instructions.<\/p>\n<p>In most cases, you need root access or admin-level capabilities to authorize CertBot.<\/p>\n<p>Installation will typically occur via SSH, a secure shell cryptographic protocol that allows file transfers over insecure networks. Popular SSH Clients are <a href=\"https:\/\/www.macworld.co.uk\/how-to\/mac-software\/how-use-terminal-on-mac-3608274\/\" target=\"_blank\" rel=\"noopener noreferrer\">Terminal<\/a> for Mac OS X and <a href=\"https:\/\/www.putty.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">PuTTY<\/a> for Windows.<\/p>\n<h3>Installing The Certificate<\/h3>\n<p>Depending on your setup and the needs of your site, there are multiple ways to install a Let\u2019s Encrypt DV certificate on your site. The <a href=\"https:\/\/certbot.eff.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot website walks you through the installation<\/a> process based on your specific server setup.<\/p>\n<p>As previously mentioned, you can also install a certificate automatically through your web host if they have chosen to make this option available. Consult your host\u2019s documentation for setup instructions as each web host varies.<\/p>\n<p>If you\u2019d like to install a wildcard certificate, you\u2019ll have to use a DNS plugin.<\/p>\n<p>You can check out the <a href=\"https:\/\/certbot.eff.org\/docs\/using.html?highlight=wildcard#dns-plugins\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot Documentation<\/a> for details.<\/p>\n<h4>Standalone Mode<\/h4>\n<p>If you don\u2019t have server software such as Apache or Nginx, for example, and you\u2019re not interesting in getting any, the standalone plugin approach is a suitable option.<\/p>\n<p>The plugin will need to bind to web server ports 80 (for HTTP) or 443 (for SSL) to validate the domain so it\u2019s possible you may need to free up those ports on your server beforehand.<\/p>\n<p>They\u2019re both used to load your site, but Certbot can throw errors if neither are available. The process of closing and opening ports depends on your operating software, so consult the specific documentation needed as necessary.<\/p>\n<p>After making sure Certbot is installed and that either port 80 or 443 is available, enter the command below into your SSH client. Note that depending on which port you use, the command will be slightly different.<\/p>\n<pre><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\n\/\/For Port 80\ncertbot certonly --standalone --preferred-challenges http -d example.com\n\n\/\/For Port 443\ncertbot certonly --standalone --preferred-challenges tls-sni -d example.com\n\n<\/pre><\/pre>\n<p>Breaking it down, <strong>certonly<\/strong> obtains (or in certain contexts, renews) a certificate, but does not install it, <strong>&#8211;standalone<\/strong> tells Certbot to run a standalone web server for authentication, <strong>&#8211;preferred-challenges<\/strong> designates the post that Certbot will use and <strong>-d<\/strong> specifies the domain name for which you\u2019re requesting an SSL certificate.<\/p>\n<p>After running the command, you\u2019ll be prompted to enter your email address and agree to the terms and conditions.<\/p>\n<p>When finished, you\u2019ll receive a message telling you the process is complete as well as the location of your certificate.<\/p>\n<h4>Webroot Plugin<\/h4>\n<p>Using the webroot method is an option if you have the capabilities to modify content on your server. The webroot method of installing a certificate places a validation file at a specific location on your web server.<\/p>\n<p>This method is handy because you don\u2019t have to switch any ports and don\u2019t need to fret about bringing down a live site during the installation process.<\/p>\n<p>It may be important to know that to use the webroot plugin, you need to make sure your server is configured to show files from hidden directories, and specifically, the \/.well-known folder.<\/p>\n<p>Run this command in your SSH client to install the webroot method:<\/p>\n<pre><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\ncertbot certonly --webroot -w \/var\/www\/example -d www.example.com -d example.com\n\n<\/pre><\/pre>\n<p>The <strong>certonly<\/strong> command obtains the certificate, <strong>&#8211;webroot<\/strong> tells Certbot the method we\u2019re using, and you\u2019ll need to include <strong>-w<\/strong> or <strong>&#8211;webroot-path<\/strong> and then the file path containing the uppermost directory that has the files served by your web server, <strong>&#8211;webroot-path \/var\/www\/html<\/strong> being a common webroot path.<\/p>\n<p>For details, check out the <a href=\"https:\/\/certbot.eff.org\/docs\/using.html?highlight=wildcard#webroot\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot documentation<\/a>.<\/p>\n<h4>Where Your Certificates are Located<\/h4>\n<p>All keys and issued certificates can be found at <em>\/etc\/letsencrypt\/live\/$domain<\/em>, which is kept updated when renewals occur.<\/p>\n<p>Here\u2019s a list of the files in your certificate:<\/p>\n<ul>\n<li><strong>Privkey.pem<\/strong> \u2013 Your private keys are stored in here and should be kept secret, even from Certbot developers. But, you must keep it accessible to the server, though, only accessible by the root user.<\/li>\n<li><strong>Fullchain.pem<\/strong> \u2013 All your certificates are stored here and if there are multiple, the first is the server certificate.<\/li>\n<li><strong>Cert.pem<\/strong> \u2013 This contains the individual server certificate.<\/li>\n<li><strong>Chain.pem<\/strong> \u2013 All intermediate certificates as well as certificates needed to validate the server are stored here.<\/li>\n<\/ul>\n<p>If you would like to check your file contents of the directory, use the ls <em>\/etc\/letsencrypt\/live\/example.com<\/em> command in your SSH client to display the listing.<\/p>\n<h3>Renewing Your Certificate<\/h3>\n<p>Certbot aims to make renewal as easy as possible by checking all installed certificates for impending expiration and then attempting to renew them.<\/p>\n<p>The command below checks multiple certificates and always takes into account whether or not they\u2019re near expiry.<\/p>\n<pre><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\ncertbot renew\n\n<\/pre><\/pre>\n<p>It will renew any certificate that has less than 30 days of validity left. You can run it as frequently as you want as there\u2019s no danger of early renewal.<\/p>\n<p>If you have multiple domain names and would like to renew only one of them, this command using <strong>certonly<\/strong> will do the trick:<\/p>\n<pre><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\ncertbot certonly -n -d example.com -d www.example.com\n\n<\/pre><\/pre>\n<p><em>Please note<\/em>: Certbot recommends including <strong>-n<\/strong> or <strong>&#8211;noninteractive<\/strong> to prevent blocking user input.<\/p>\n<h2>Conclusion<\/h2>\n<p>Installing an SSL certificate is an essential security measure for any WordPress site. Let\u2019s Encrypt and Certbot provide quick and free ways to secure your domain and website with HTTPS and an SSL certificate.<\/p>\n<p>For a comprehensive details, check out the extensive <a href=\"https:\/\/certbot.eff.org\/docs\/\" target=\"_blank\" rel=\"noopener noreferrer\">Certbot documentation<\/a> and <a href=\"https:\/\/community.letsencrypt.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">community forum<\/a>.<\/p>\n<p><strong>Were you able to successfully install a free SSL certificate with Let\u2019s Encrypt? What are your reasons for installing an SSL certificate? Share your experience in the comments below.<\/strong><\/p>\n\n\n<h3><strong>FURTHER READING<\/strong><\/h3>\n<hr \/>\n<ul>\n<li><a href=\"https:\/\/stylemixthemes.com\/wp\/yoast-seo-detailed-guide\/\"><span data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;yoast seo instructions&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:4227,&quot;3&quot;:{&quot;1&quot;:0},&quot;4&quot;:{&quot;1&quot;:2,&quot;2&quot;:16776960},&quot;10&quot;:2,&quot;15&quot;:&quot;Arial&quot;}\">Yoast SEO Instructions<\/span><\/a><\/li>\n<li><a href=\"https:\/\/stylemixthemes.com\/wp\/15-creative-wordpress-themes-for-digital-agencies\/\"><span data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;WordPress themes for digital agencies&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:4227,&quot;3&quot;:{&quot;1&quot;:0},&quot;4&quot;:{&quot;1&quot;:2,&quot;2&quot;:16776960},&quot;10&quot;:2,&quot;15&quot;:&quot;Arial&quot;}\">WordPress Themes For Digital Agencies<\/span><\/a><\/li>\n<li><a href=\"https:\/\/stylemixthemes.com\/wp\/mailget-bolt-review\/\"><span data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;MailGet Bot&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:4227,&quot;3&quot;:{&quot;1&quot;:0},&quot;4&quot;:{&quot;1&quot;:2,&quot;2&quot;:16776960},&quot;10&quot;:2,&quot;15&quot;:&quot;Arial&quot;}\">MailGet Bot<\/span><\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Chrome displays a warning for any site that doesn\u2019t have an \u201chttps\u201d prefix in the URL. Installing a free SSL certificate fixes this warning for WordPress.<\/p>\n","protected":false},"author":5,"featured_media":2802,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[246,245,243,228],"class_list":["post-2800","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-certbot","tag-lets-encrypt","tag-ssl","tag-wordpress-security"],"_links":{"self":[{"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/posts\/2800","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/comments?post=2800"}],"version-history":[{"count":0,"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/posts\/2800\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/media\/2802"}],"wp:attachment":[{"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/media?parent=2800"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/categories?post=2800"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stylemixthemes.com\/wp\/wp-json\/wp\/v2\/tags?post=2800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}