configure https on your localhost environment

here is how to configure your local environment to browse over trusted ssl over https, in this guide i am using ubuntu 20 with apache2 but it can run at any os or app server


1- in order to install a cert, we will need to install "certutil":

sudo apt install libnss3-tools

2- download the latest mkcert:

curl -s| grep browser_download_url  | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
mv mkcert-v*-linux-amd64 mkcert
chmod a+x mkcert
sudo mv mkcert /usr/local/bin/


3- install mkcert

mkcert -install


4- create your localhost certificates:

mkcert '*' localhost ::1

5- apache | enable ssl:

sudo a2enmod ssl

6- apache | create a ssl site config:

cd /etc/apache2/sites-available/
sudo cp default-ssl.conf your-local-domain.conf
sudo nano your-local-domain.conf

edit the file and add your ssl file and key to the lines below:

SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key


7- apache | firewall | allow https port

sudo ufw enable
sudo ufw allow 'Apache Full'

8- apache | enable the new site and restart apache2:

sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite your-local-domain.conf
sudo systemctl restart apache2