Dalam tutorial ini, saya tuliskan step by step bagaimana membuat sertifikat SSL valid untuk keperluan di localhost. Untuk keperluan ini, digunakan beberapa alat sebagai berikut:

Sekilas Tentang mkcert

mkcert adalah alat yang dapat kita digunakan untuk membuat sertifikat SSL valid untuk digunakan hanya di localhost saja.

Instalasi certutil

sudo apt install libnss3-tools

Instalasi linuxbrew

Instalasi mkcert dilakukan dengan menggunakan bantuan package manager linuxbrew. Berikut ini cara instalasi linuxbrew:

sudo apt-get install build-essential curl file git
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

Instalasi mkcert

brew install mkcert
mkcert -h

Membuat Sertifikat SSL

Buat Local CA terlebih dahulu dengan perintah berikut:

mkcert -install
mkcert -CAROOT

Dalam contoh ini, kita membuat sertifikat SSL untuk localhost.

mkdir ~/ssl
cd ~/ssl
mkcert localhost

Perintah di atas akan menghasilkan 2 file, yakni file sertifikat (localhost.pem) dan private key (localhost-key.pem).

ls

Menggunakan Sertifikat SSL di Apache2

Sertifikat yang sudah kita buat selanjutnya dapat kita gunakan di web server Apache2. Bila belum melakukan instalasi web server Apache2, gunakan perintah berikut:

sudo apt install apache2

Kemudian pindahkan file sertifikat yang sudah kita buat dengan perintah berikut:

sudo mv ~/ssl/localhost.pem /etc/ssl/certs/
sudo mv ~/ssl/localhost-key.pem /etc/ssl/private/

Selanjutnya kita sesuaikan virtualhost localhost (port 443).

sudo vi /etc/apache2/sites-available/default-ssl.conf

Sesuaikan bagian berikut:

31
32
33
34
35
# baris ke 32
SSLCertificateFile /etc/ssl/certs/localhost

# baris ke 33
SSLCertificateKeyFile /etc/ssl/private/localhost-key.pem

Aktifkan modul SSL Apache2 dan virtualhost localhost (port 443).

sudo a2enmod ssl
sudo a2ensite default-ssl.conf

Muat ulang Apache2.

sudo systemctl restart apache2
sudo systemctl status apache2

Percobaan Akses

Gunakan browser dan akses alamat localhost.

Membuat SSL Subdomain

Untuk membuat sertifikat SSL dengan subdomain misal demo.localhost, gunakan perintah berikut:

mkcert demo.localhost

Referensi: