$30
Cmpt 470 - Assignment 5
Overview
In this assignment, you will be installing a (somewhat) secure Apache server on a docker image.
There are two main components for the assignment. Installing a self-signed SSL certificate, and
creating groups and permissions for the files:
Server
Begin by searching for a public image on docker hub that runs Apache. You may also start by pulling
the Ubuntu image as shown in class and installing Apache manually. The resource “Apache on
Ubuntu Linux” should provide you with the overall architecture of Apache file system and where
the config files are located.
To get started on the server setup, have a look at the “Creating self-signed certificate” link
provided. This guide provides the general steps you will need to follow to self-sign certificates on
your server.
Create two folders “web1” and “web2” under your root directory. Both should listen for HTTPs
requests. Create a different webpage under each directory; they don’t have to be extravagant.
For example, you can display the words
welcome to web1 and
welcome to web2
to differentiate the two pages.
Authentication
We will now add some basic authentication to our two folders. A basic authentication can be set
up by using a .htaccess file (stored in each folder) to override the defaults (which is no
authentication). Create two groups grp1, and grp2 with the following users:
User Password Group
as1 1234 grp1
rp2 5678 grp1
<your_sfu_computing_ID> <your_sfu_student_number> grp1
ts3 4321 grp2
we4 8765 grp2
Bn5 9999 grp2
<your_sfu_computing_ID> <your_sfu_student_number> grp2
Configure the server so that only grp1 can access the web1 folder and only grp2 can access the
web2 folder, using basic authentication.
Submission
If you have not done so already, sign up for an account on docker hub and push your completed
image onto the hub. In your submission, please include a textfile containing your image name (i.e.
bobbyctchan/myimage:latest). We will be envoking the commands:
docker pull <your_image_name>
docker --rm -d -p 443:443 <your_image_name>
then navigating to https://localhost/web1 and https://localhost/web2 to check your work
Marking Scheme
Image properly pushed to Docker hub, SSL certificate installed: 5 Marks
web1 and web2 folders set up properly: 5 Marks
THE END