setting up web infrastructure DNS and HTTPS for your cloud Infrastructure as a Service OCI


The goal of this blog is to setup DNS Name and HTTPS Certificate


You would be using Cloud Flare to setup your DNS and you would buy your domain name from godaddy and using Oracle cloud – all these 3 can vary however the procedure remains more or less the same.

Buying a Domain

You would need to register a domain from domain name service provider such as godaddy or anyone else , Once you buy the domain name you can access the default home page within max 24 hours and should be able to access your website and admin console area

Make Note of DNS Names this eventually needs to be changed 

Making Note of Public IP Address

We would need to Map our Public IP address from OCI Console to CloudFlare ( Assuming that you already have cloudflare account created )

Let us assume that our Public IP address A.B.C.D this is something that we need to Provide in website IP address at CloudFlare

Cloudflare DNS and Hostname Mapping

In the Domain Name setting under DNS Tab , give the newly purchased hostname and map it to Public IP Address of the Server

example we can map as below

A record of to A.B.C.D ( Public IP )

CNAME should have

Scroll down to make note of DNS Named Server urls – this is something that needs to replace godday DNS Server

Generating SSL Certificate from Cloudflare

Select Crypto Tab , Generate SSL Certificate , this will create 2 files 1) yourdomain.crt and 2) yourdomain.key – copy paste this as CRT and KEY files , we would later need to upload this to our server

Important : FTP the KEY and CRT files to any folder of your choice example /mnt/path/certificates/

SSH to Server and Modify Apache Settings

sudo vi /etc/apache2/sites-available/000-default.conf 
 VirtualHost *:80  


        ServerAdmin [email protected]
        DocumentRoot /mnt/path/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, 
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
 VirtualHost *:443 

        ServerAdmin [email protected]
        #DocumentRoot /var/www/html
        DocumentRoot /mnt/path/www/html

        SSLEngine on
        SSLCertificateFile /mnt/path/certificates/
        SSLCertificateKeyFile /mnt/path/certificates/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

Reality Check and and

should now be live and be accessing content from your public ip A.B.C.D