Used a signed certificate from:

Certbot - Ubuntuxenial Nginx

Steps taken:

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx

These are the outcome of the installation process:

You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=api.myjarvis.iohttps://www.ssllabs.com/ssltest/analyze.html?d=app.myjarvis.io

IMPORTANT NOTES:

Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/api.myjarvis.io/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/api.myjarvis.io/privkey.pem
Your cert will expire on 2019-04-17. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.

[S]OLID - Single Responsibility Principle by example - Ruby Blog

Checkilist

SRP - Single Responsibility Principle

solid

SOLID Design Principle

[S]OLID - Single Responsibility Principle by example - Ruby Blog

Development Resources

Links