Chris Mendez in AWS, EC2, Wordpress, DevOps, For Developers

Install a free SSL certificate on WordPress EC2 by Bitnami

We are going to use Let's Encrypt Certificate Authority to create a free SSL certificate.

Step 1 - Log In

ssh -i /path/to/file.pem bitnami@XX.XXX.XX.XX  

Step 2 - Install Git

Update your package manager

sudo apt-get update  

Install Git

sudo apt-get install git  

Step 3 - Download and install Certbot

Certbot is the client tool that will allow you to request and install an SSL certificate from Let's Encrypt.

cd /tmp  

Download Certbot.

git clone https://github.com/certbot/certbot  

Install Certbot.

cd certbot && ./certbot-auto  

Step 4 - Request and install an SSL certificate.

Generate And Install A Let's Encrypt Certificate using Certbot.

./certbot-auto certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d SUBDOMAIN.MYDOMAIN.COM

Step 5 - Configure Apache

Link your SSL certificate and certificate key file to the correct locations.

sudo ln -s /etc/letsencrypt/live/SUBDOMAIN.MYDOMAIN.COM/fullchain.pem /opt/bitnami/apache2/conf/server.crt  
sudo ln -s /etc/letsencrypt/live/SUBDOMAIN.MYDOMAIN.COM/privkey.pem /opt/bitnami/apache2/conf/server.key  

Step 6 - Restart Apache

sudo /opt/bitnami/ctlscript.sh restart apache  

Step 7 - Renew your Cert

How To Renew A Let's Encrypt Certificate For Your Domain Using The Certbot Client?

./certbot-auto renew

Access my app from only one domain

To redirect all these domains to your own domain, add the following configuration.

nano /opt/bitnami/apache2/conf/bitnami/bitnami.conf  
<VirtualHost _default_:80>  
RewriteEngine On  
RewriteCond %{HTTP_HOST} !^example.com$  
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)  
RewriteRule ^(.*)$ http://example.com$1 [R=permanent,L]  
...

<VirtualHost _default_:443>  
RewriteEngine On  
RewriteCond %{HTTP_HOST} !^example.com$  
RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)  
RewriteRule ^(.*)$ https://example.com$1 [R=permanent,L]  
...

Troubleshooting

Installing Plugins

If at any point you struggle to install plug-ins, try this.

Change ownership.

sudo chown -R bitnami:daemon [installdir]/apps/wordpress/htdocs/wp-content  

Change directory permissions.

sudo chmod -R g+w [installdir]/apps/wordpress/htdocs/wp-content  

Resources