Cara Setting Aplikasi FEEDER PDDIKTI dengan Sub Domain dan SSL (HTTPS)

Yang harus dipersiapkan:

  1. Sebuah server FEEDER yang sudah Online. Anda bisa mendapatkan informasi caranya di sini
  2. Akses ke manajemen DNS dari domain yang hendak di-setting. Contoh misalnya namakampus.ac.id, sedangkan contoh subdomain misalnya feeder.namakampus.ac.id. Untuk tutorial kali ini, kami menggunakan domain node.id dengan sub domain feeder-test.node.id
Langkah ke-1: Mengarahkan Sub Domain ke Alamat IP

Silahkan masuk ke DNS management yang Anda gunakan. Jika Anda menggunakan layanan shared hosting, silahkan tanya ke penyedia hosting Anda. Biasanya setiap pelanggan hosting sudah diberi akses (username dan password) ke kontrol panel (cPanel, Directadmin, Plesk, dll). Jika domain Anda menggunakan DNS management pihak ketiga (Cloudflare, Dnsmadeeasy, dll), silahkan masuk ke layanan yang Anda gunakan tersebut.

Dari DNS management tersebut, buatlah A record sub domain yang mengarah ke IP dari server FEEDER Anda. Contohnya adalah sebagai berikut:

feeder-test.node.id. IN A 103.219.248.120

Jika langkah ini sudah dilakukan, mungkin Anda perlu waktu beberapa saat agar DNS record tersebut tersebar di internet. Anda bisa memeriksanya dengan membuka URL http://feeder.namakampus.ac.id:8082/ atau kalau dalam contoh kami adalah http://feeder-test.node.id:8082/

Jika Anda menggunakan layanan reserve proxy seperti Cloudflare, dan jika reserve proxy aktif di sub domain tersebut, maka tidak bisa mengakses sub domain di port 8082 tersebut karena Cloudflare hanya bisa proxy port 80 dan 443 saja. Anda bisa mencoba menonaktifkan reserve proxy pada sub domain tersebut atau lanjut ke langkah ke-2 berikut ini.

Langkah ke-2: Setting Apache di Server FEEDER untuk HTTP

CATATAN: Jika Anda install/reinstall aplikasi FEEDER di NODE.ID setelah 21 Februari 2021, setting berikut ini sudah otomatis terimplementasi.

Secara default, aplikasi FEEDER menggunakan port 8082. Pada bagian ini, akan dijelaskan cara agar aplikasi FEEDER bisa diakses melalui standard port 80 (HTTP) dan 443 (HTTPS).

Silahkan masuk ke server FEEDER melalui protokol SSH. Jika Anda adalah pengguna Windows, Anda bisa menggunakan Putty untuk masuk ke server. Gunakan IP, username, dan password yang diberikan oleh NODE.ID untuk masuk server FEEDER Anda.

Edit file /etc/apache2/ports.conf. Anda bisa menggunakan nano untuk mengeditnya dengan perintah seperti ini:

nano /etc/apache2/ports.conf

Tambahkan "Listen 80" sehingga isi file tersebut seperti ini:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 8082
Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Untuk menyimpannya, pencet Control + O lalu ENTER. Untuk keluar silahkan memencet Control + X.

Langkah selanjutnya jalankan perintah ini:

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default-80.conf

Lalu jalankan perintah ini:

a2ensite default-80

Lalu jalankan perintah ini untuk verifikasi setting Apache:

apachectl configtest

Jika konfigurasi benar, Anda akan mendapat response "Syntax OK". Jika tidak mendapat response demikian, periksa konfigurasi sebelumnya, mjungkin ada yang salah ketik.

Lalu jalankan perintah ini:

service apache2 restart

Sampai di sini, Anda sudah bisa membuka aplikasi FEEDER dengan subdomain Anda misalnya http://feeder.namakampus.ac.id/ (tanpa HTTPS dan tanpa port 8082). Dalam contoh kami, kami bisa membuka http://feeder-test.node.id/

Jika Anda belum sukses membuka sub domain Anda tersebut, Anda tidak bisa lanjut ke langkah selanjutnya.

Langkah ke-3: Setting Apache di Server FEEDER untuk HTTPS (Optional)

CATATAN: Setelah kami cek, ternyata aplikasi FEEDER selalu redirect HTTPS ke HTTP biasa. Dalam hal ini kita hanya bisa menunggu dari tim pengembang FEEDER DIKTI untuk memperbaikinya. Jadi menurut hemat kami, langkah berikutnya ini tidak begitu diperlukan, kecuali sudah ada update aplikasi dari DIKTI yang tidak memaksa redirect HTTPS ke HTTP. Langkah ini diperlukan jika Anda menggunakan layanan Cloudflare dan Anda setting SSL dengan mode full/strict.

Anda harus mempunya sertifikat SSL yang bisa Anda beli dari banyak penyedia sertifikat SSL. Namun, pada tutorial kali ini kami merekomendasikan menggunakan sertifikat gratis dari Let's Encrypt. Langkah pertama adalah install aplikasi certbot dengan perintah sebagai berikut:

apt-get install -y certbot

Langkah berikutnya adalah verifikasi konfigurasi web server sebelum meminta sertifikat sungguhan dengan perintah sebagai berikut (silahkan ganti email dan subdomain dengan yang Anda miliki):

certbot certonly --webroot -w /var/www/html --agree-tos -m emailanda@gmail.com --dry-run -d feeder.namakampus.ac.id

Jika percobaan sukses, akan mendapat output pesan berupa: "The dry run was successful.". Jika tidak mendapat response tersebut, mungkin server Let's Encrypt sedang sibuk atau kendala lain yang bisa ditelusuri di log /var/log/letsencrypt/letsencrypt.log.

Selanjutnya adalah meminta sertifikat SSL sungguhan dengan perintah berikut (silahkan ganti email dan subdomain dengan yang Anda miliki):

certbot certonly --webroot -w /var/www/html --agree-tos --no-eff-email -m emailanda@gmail.com -d feeder.namakampus.ac.id

Jika sukses, Anda akan mendapat output pesan "Congratulations! Your certificate and chain have been saved at:". Akan ada info dimana lokasi sertifikat berserta kuncinya berada yang akan kita pasang di Apache, misalnya di /etc/letsencrypt/live/feeder.namakampus.ac.id/fullchain.pem dan /etc/letsencrypt/live/feeder.namakampus.ac.id/privkey.pem. Untuk contoh yang kami jalankan, sertifikat dan kuncinya berada di /etc/letsencrypt/live/feeder-test.node.id/fullchain.pem dan /etc/letsencrypt/live/feeder-test.node.id/privkey.pem

Selanjutnya adalah memasang sertifikan yang diperoleh ke Apache. Silahkan edit file /etc/apache2/sites-available/default-ssl.conf dengan nano menggunakan perintah berikut:

nano /etc/apache2/sites-available/default-ssl.conf

Cari bagian ini:

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

Ganti dengan sertifikat dna kunci yang Anda dapatkan dari Let's Encrypt (silahkan sesuaikan dengan nama domain Anda):

#SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLCertificateFile      /etc/letsencrypt/live/feeder.namakampus.ac.id/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/feeder.namakampus.ac.id/privkey.pem

Untuk menyimpannya, pencet Control + O lalu ENTER. Untuk keluar silahkan memencet Control + X.

Lalu jalankan perintah ini:

a2ensite default-ssl

Lalu jalankan perintah ini untuk verifikasi setting Apache:

apachectl configtest

Jika konfigurasi benar, Anda akan mendapat response "Syntax OK". Jika tidak mendapat response demikian, periksa konfigurasi sebelumnya, mjungkin ada yang salah ketik.

Lalu jalankan perintah ini:

service apache2 restart

Sampai di sini Anda harusnya sudah bisa membuka aplikasi FEEDER dengan sub domain dan HTTPS, misalnya https://feeder.namakampus.ac.id/ Kalau dalam contoh kami adalah https://feeder-test.node.id/