Nginx HTTPS & Nginx Authentication
Note
Pada praktikum kali ini kita akan menggunakan VM ftp-server
sebelumnya sebagai CA-Server
dan VM nginx
di praktikum sebelumnya sebagai nginx web server
dan DNS Server
. Jangan Lupa untuk melakukan konfigurasi IP vm nginx
menjadi 192.168.10.30.
Pembuatan certificate untuk Nginx
Agar nginx dapat diakses secara secure, maka dibutuhkan pasangan key dan certificate
. certificate ini akan dibuat di vm ftp server
yang bertindak sebagai ca server
yang nanti akan dikirimkan ke vm nginx
.
Membuat file konfigurasi untuk client nginx
Warning
GUNAKAN USER BIASA !!! yang digunakan untuk melakukan konfigurasi CA pada praktikum sebelumnya
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = domain.lan
DNS.2 = www.domain.lan
Membuat privete key untuk client
Membuat CSR file untuk client
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jabar
Locality Name (eg, city) []:Jonggol
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nginx
Organizational Unit Name (eg, section) []:Web Nginx
Common Name (e.g. server FQDN or YOUR name) []:www.domain.lan
Email Address []:domain@gg.lan
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: enter aja
An optional company name []: sama ini juga enter aja
Menandatangani (Sign) file csr
useradmin@ftp-server:~/ca$ openssl x509 -req -in domain.lan.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out domain.lan.crt -days 365 -sha256 -extfile domain.lan.ext
Mengirimkan file crt dan key client ke server client
useradmin@ftp-server:~/ca$ scp domain.lan.key useradmin@192.168.10.30:~
useradmin@ftp-server:~/ca$ scp domain.lan.crt useradmin@192.168.10.30:~
Setting DNS Server
Karena kita membuat perubahan IP Address
pada web server nginx
maka kita perlu menyesuaikan ip address
tersebut didalam konfigurasi dns server
agar domain mengarah ke ip-address yang benar.
Setting ip dns server di client
Sesuaikan ip address DNS Server dari client.
Konfigurasi Server Block Nginx
Server Block pada nginx harus dikonfigurasi agar website bisa diakses dengan mode https
Edit file konfigurasi Server Block domain.lan
ubah baris ke menjadi seperti dibawah ini agarnginx
membaca konfigurasi ssl/tls
tambahkan perintah berikut dibawah baris perintah index
, sesuaikan dengan path anda menyimpan file crt dan key dari nginx.

Pengujian di browser
akses www.domain.lan
dengan mode https
di browser https://www.domain.lan
Nginx Authentication
Sama seperti halnya apache2
nginx
pun memiliki fitur authentication
installasi htpasswd
htpasswd
merupakan utilitas
yang memungkinkan kita untuk menerapkan authentication
pada web server, namun sebenarnya htpasswd
merupakan utilitas
dari apache2
sehingga jika menggunakan nginx
kita harus menginstallnya terlebih dahulu.
membuat file kata sandi
root@nginx:/etc/nginx/conf.d# htpasswd -c /etc/nginx/.htpasswd rehan
New password:
Re-type new password:
Adding password for user rehan
edit konfigurasi server block domain.lan
tambahkan 2 baris berikut dibawah konfigurasissl

mengubah kepemilikan file .htpasswd
Pengujian di browser
akses https://www.domain.lan