I've been using lightsail to host a personal website which is great with the pre-configured lamp stack. It comes installed with bitnami package which comes with tools that make hosting an https server easy.
bncert-tool is the command line tool which is present in "/opt/bitnami/" this is useful for setting up certificates for the website from letsencrypt,org.
Bitnami on lightsail is installed using packages, so it comes pre-configured with the virtual hosts enabled. This is huge because it removes a bunch of steps that need to be done for hosting multiple subdomains on the same instance.
Setup Multiple Domains
So the first step for getting started is to create a lightsail instance //or some other instance with the bitnami packages installed. I've picked lightsail with LAMP stack. This is pretty cheap at $3.5 per month on the lowest configuration and you can set it up for getting command line access.
Like i mentioned before bitnami when installed through system packages, will automatically configure your apache server to support virtual hosts. This is mentioned in their documentation:
You can read up more about it in the page here: https://docs.bitnami.com/virtual-machine/infrastructure/lamp/configuration/configure-custom-application/
Sub-domains
As mentioned in the documentation above, you can head to the "/opt/bitnami/apache/conf/vhosts" directory to add configuration files for the new subdomains you want to add to this instance. There are sample vhost.conf files provided for your convenience "sample-vhost.conf.disabled" and "sample-https-vhost.conf.disabled" create a copy of sample-vhost.conf.disabled for every http endpoint you want to create and a copy of sample-https-vhost.conf.disabled for every https endpoint.
Note that you should name your files "anyname-vhost.conf" (<anyname> to be replaced with your own subdomain name)
As shown here you will need to create new vhost.conf files for the prod.example.com "http" and "https" end point. You will observe that the configs have added www.prod.example.com as an alias in both the plain and https config files this is to ensure www. domains are handled as well.
Domain Console
Before we can actually use the domain name for the virtual hosts, we should add the new subdomains to the domain console. Add "A" records for prod.example.com and www.prod.example.com to point to the public IP address of the lightsail instance. (Note that this IP address will change every time the instance is restarted, if you have not associated a static IP to the instance)
Creating Certificates
The certificate creation process is pretty simple with the bncert-tool. Run it as root using "sudo bncert-tool" go through the questions and if all goes well, the certificates will be created and the vhost conf files will be updated to use the new certificate files and will be setup for auto renewal.
Comments