In order to setup Cloudflare flexible SSL for your WordPress site, you’ll need to move your domain name server to Cloudflare. Login to your Cloudflare, at the top menu, choose crypto, then change SSL settings to flexible.
At the top menu, choose page rules. Add a page rule to always use HTTPS for http://www.oofnivek.com/*
Take note that the URL is HTTP and not HTTPS. This is because my web server is actually serving pages using HTTP and not https. Cloudflare is the one serving my pages using https acting like a proxy between you and my server.
Install WordPress plugin
Other than the configuration in Cloudflare, we need to install WordPress HTTPS (SSL) plugin. Without this plugin, loading the page will cause mixed content error and warnings. Once installed and activated, set the value for “proxy” to yes. If properly configured, it should show secure now next to the address bar.
To create Elastic IP for your Elastic Compute Cloud (EC2) instance, go to Elastic IPs on the left menu and click [allocate new address]. A new address will be allocated to you, then associate the address to your EC2 instance.
The reason why we are creating an Elastic IP is that the IP address assigned to your server is not permanent and it changes each time you restart your EC2 instance. You would not want to keep changing your IP address in Cloudflare each time your server rebooted.
Configure Security Group
Within EC2, under instances, select the Ubuntu instance with the IP address 220.127.116.11. Within the description tab, click the security group named launch-wizard-2, it will bring you to the security group of your EC2 instance.
At the security group settings, inbound tab, click edit. Click add rule and add a type HTTP, then click save. This allows inbound HTTP traffic into your Ubuntu instance.
SSH into your Ubuntu server to install Apache. Type the following command to install. Once completed, open your web browser and navigate to 18.104.22.168. If you had configured your security group correctly and successfully installed Apache, you should see the Apache default page.
In Cloudflare, click DNS at the top menu. Key in the name of your domain, enter the IP address of the elastic IP allocated for your EC2 instance. Click [add record] and wait for a minute or two for the domain name server to resolve your domain to the specified IP.
Test Cloudflare DNS
To test if you had configured your Cloudflare correctly. Open your web browser and navigate to domain created. In my scenario, I will be navigating to test.oofnivek.com. If you had successfully configured Cloudflare, you should see the Apache default page.
To move domain from Amazon Web Services (AWS) Route 53 to Cloudflare. First you need to have a Cloudflare account. Sign up for a free account if you do not have one. Once signed up, go to DNS (Domain Name Server), you will be assigned with two name servers.
Move domain from AWS to Cloudflare
Now in your Amazon Web Service (AWS) console. At the top menu click services, then choose Route 53. After that on the left menu, choose hosted zones.
Click on the domain you wish to move. Then choose the row with type NS (Name Server). Remove all the Amazon name servers and replace them with Cloudflare name servers.
Now on the left menu, choose registered domains, click on the domain you wish to move. Edit the name servers by removing all of the Amazon name servers and replace them with Cloudflare name servers.
That’s all, you have successfully moved your domain to Cloudflare. Your changes will take a few minutes to reflect. Read test Cloudflare DNS to test your newly moved domain.
I have been using Amazon Web Services (AWS) Route 53 to buy domains for a while now since I moved away from GoDaddy. It is actually cheaper to buy from Amazon if you plan to use the domain for more than two years.
Amazon domain is the same price every year. GoDaddy domain is ultra cheap the first year, but year three onwards is ridiculously expensive.
Besides that, I like the fact that I have everything inside one Amazon account. It is also because of this, I was reluctant to use Cloudflare because AWS has CloudFront.