Mikrotik dapat diakses melalui http dan https, disinilah problem dimulai. Apabila Anda mengakses mikrotik dengan port 80 (http) maka data akan terkirim plain tidak terenkripsi, akan berbahaya apabila koneksi dari Anda ke mikrotik ada yang menyadap atau menggunakan proxy. Kenapa berbahaya? — Karena semua informasi, termasuk username dan password akan terkirim secara plain dan dapat dilihat oleh intruder atau “Man in the Middle“.
Apabila Anda mengakses mikrotik via internet, sudah pasti akan ada iklan yang menyusupi, ini umum terjadi apabila anda menggunakan koneksi ISP ternama yang menyisipkan kode iklannya di setiap koneksi http.
Bagaimana jika HTTPS? sesuai namanya, https akan mengenkripsi semua data dari dan ke mikrotik Anda. lebih secure bukan? Bahkan apabila ada intruder atau sisipan iklan maka tidak akan berhasil karena browser akan melakukan validasi data yang dikirimkan pengguna ke server, sehingga intruder tidak akan bisa menyisipkan kode iklan di data yang terkirim.
Kita tidak akan mendalami poses data anatara http dan https, namun kita akan mempraktekkan bagaimana memasang SSL Let’s encrypt di mikrotik agar proses transfer kita lebih secure.
Let’s encrypt memberikan setifikat SSL gratis kepada semua orang selama 3 bulan dan dapat diperpanjang. Let’s encrypt hanya membutuhkan proses validasi saja ketika kita ingin membuat dan memperpanjang sertifikat SSL nya. Adapun metode validasinya adalah sebagai berikut:
- webroot. LE akan membuat file dan direktory khusus di folder tertentu sesuai dengan domain anda. biasanya digunakan di webserver
- standalone. LE akan menjalankan program dan membuka port tertentu untuk proses validasi, ini berguna apabila anda tidak mempunyai webserver atau domain yang akan di validasikan tidak membuka port http/https
- domain, LE akan melakukan validasi domain dengan mencantumkan record TXT ke domain yang akan divalidasikan
- dan beberapa metode lain, silakan cek di halaman Challange ACME
Kali ini kita akan menggunakan domain untuk proses validasinya, untuk itu mohon siapkan beberapa perangkat:
- Server yang mempunyai program acme/let’s encypt
- Mikrotik, ip yang digunakan adalah 192.168.1.2
- Domain, Anda membutuhkan akses ke dns server, domain yang akan digunakan adalah mikrotik-ssl-blog.wow.net.id
Silahkan sesuaikan IP dan domain dengan kebutuhan anda. Berikut adalah langkah langkah nya:
Pasang certbot/acme di server
Dalam artikel ini kita akan menggunakan Ubuntu, silahkan masuk ke server menggunakan ssh, bisa menggunakan putty di Windows atau terminal jika di Linux
[email protected]:~$ ssh ubuntu Warning: Permanently added 'ubuntu' (RSA) to the list of known hosts. Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-1020-kvm x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage This system has been minimized by removing packages and content that are not required on a system that users do not log into. To restore this content, you can run the 'unminimize' command. 0 updates can be installed immediately. 0 of these updates are security updates. Last login: Tue Nov 3 11:28:26 2020 from ::1 [email protected]:~$
Membuat ssh key
SSH key ini dibutuhkan agar ketika login ke mikrotik tidak perlu password, tujuanya pada saat update ssl dikemudian hari kita tidak pelu melakukan input user dan password sehingga proses pembaharuan otomatis dapat berjalan lancar
Berikut adalah langkah langkahnya, tetap di server yang sudah Anda login diatas, silakan ketik “ssh-keygen” dan enter apabila ada perintah memasukkan password, tujuanya agar ssh key tersebut tidak mempunyai password
[email protected]:~$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/wownet/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/wownet/.ssh/id_rsa Your public key has been saved in /home/wownet/.ssh/id_rsa.pub The key fingerprint is: SHA256:aqdLo8k1fL1ueT/tTUqUDwNLOGKM0bip9P0TuXt9C58 [email protected] The key's randomart image is: +---[RSA 3072]----+ | .o | | .+. . | | .o+ o o | | . o. . o o . | | . o .S .. = | | ......o . + | | O o..+ o..o| | . * * *.o.=o=| | + o. o+= .oE+| +----[SHA256]-----+
Salin SSH key ke mikrotik
Langkah selanjutnya adalah menyalin file ssh publik yaitu id_rsa.pub ke mikrotik, kita akan menggunakan scp untuk menyalin, perintahnya adalah: scp -P PORT_SSH ~/.ssh/id_rsa.pub IP_ROUTER:/id_rsa.pub berikut contohnya: [email protected]:~$ scp -P 30022 .ssh/id_rsa.pub 192.168.1
[email protected]:~$ scp -P 30022 .ssh/id_rsa.pub 10.85.255.2:id_rsa.pub [email protected]'s password: id_rsa.pub 100% 576 90.3KB/s 00:00
Setelah itu silakan login ke mikrotik dan buat ssh publik key tersebut diasosiasikan ke user yang diinginkan, pada contoh kali ini adalah user wownet
[email protected]:~$ ssh 192.168.1.2 [email protected]'s password: ... /command Use command at the base level [[email protected]] > /user ssh-keys import user=wownet public-key-file=id_rsa.pub
Test kembali dengan login menggunakan user yang sama, apabila tidak dimintai password berarti sudah berhasil
Memasang script pembantu
Untuk membantu membuat ssl, kita akan menggunakan script milik Konstantine Gimpel, yang terdapat di GitHub, silakan lakukan perintah dibawah ini
[email protected]:~$ sudo apt install git
[email protected]:~$ git clone https://github.com/gitpel/letsencrypt-routeros
Cloning into 'letsencrypt-routeros'...
remote: Enumerating objects: 82, done.
remote: Total 82 (delta 0), reused 0 (delta 0), pack-reused 82
Unpacking objects: 100% (82/82), 35.24 KiB | 137.00 KiB/s, done.
[email protected]:~$ cd letsencrypt-routeros/
Edit file letsencrypt-routeros.settings, dan sesuaikan dengan username, ip router milik Anda, berikut adalah config yang telah disesuaikan dengan config saya

Membuat sertifikat SSL
Langkah selanjutnya adalah memasang Let’s encrypt yang disebut dengan certbot dan remove certbot yang ada (apabila terpasang)
[email protected]:~$ sudo apt remove certbot -y [email protected]:~$ sudo snap install core; sudo snap refresh core core 16-2.47.1 from Canonical✓ installed snap "core" has no updates available [email protected]:~$ sudo snap install --classic certbot certbot 1.9.0 from Certbot Project (certbot-eff✓) installed [email protected]:~$
Domain yang akan kita pasang SSL adalah mikrotik-ssl-blog.wow.net.id, untuk itu silakan eksekusi perintah dibawah ini dan jangan menekan tombol enter
[email protected]:~$ sudo certbot certonly --manual --preferred-challenges dns -d mikrotik-ssl-blog.wow.net.id --debug-challenges --post-hook /home/wowrack/letsencrypt-routeros/letsencrypt-routeros.sh --manual-public-ip-logging-ok Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None Obtaining a new certificate Performing the following challenges: dns-01 challenge for mikrotik-ssl-blog.wow.net.id - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.mikrotik-ssl-blog.wow.net.id with the following value: W3APPWt7fMyhdWjb9qlckfIt-dsy0j6nTOr2fr-fhCI Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue
Dari pesan di atas kita perlu menambahkan record TXT ke domain mikrotik-ss-blog.wow.net.id dengan record W3APPWt7fMyhdWjb9qlckfIt-dsy0j6nTOr2fr-fhCI, dengan record _acme-challenge.mikrotik-ssl-blog.wow.net.id
Silakan buka dns Anda, tergantung dari bagaimana Anda mengatur DNS record Anda, di kami menggunakan web interface PowerAdmin yang terhubung dengan dns server PowerDNS. Apabila Anda menggunakan provider seperti cloudflare silakan menambahkan record tersebut di cloudflare
Berikut adalah tangkapan layar untuk pengaturan di PowerAdmin

Sedangkan apabila anda menggunakan cloudflare, tampilan nya adalah sebagai berikut

Apabila sudah, silakan simpan dan tunggu ~30 menit untuk menunggu propagasi DNS. Setelah mengunggu 30 menit, silakan buka kembali putty Anda dan tekan enter. Kemudian akan muncul tulisan sebagai berikut:
Waiting for verification... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Challenges loaded. Press continue to submit to CA. Pass "-v" for more info about challenges. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue
Tekan enter sekali lagi dan akan muncul output berikut:
Cleaning up challenges Running post-hook command: /home/wownet/letsencrypt-routeros/letsencrypt-routeros.sh Output from post-hook command letsencrypt-routeros.sh: Usage: /home/wownet/letsencrypt-routeros/letsencrypt-routeros.sh or /home/wownet/letsencrypt-routeros/letsencrypt-routeros.sh [RouterOS User] [RouterOS Host] [SSH Port] [SSH Private Key] [Domain] uptime: 1h53m42s version: 6.46.7 (long-term) build-time: Sep/07/2020 07:38:56 free-memory: 6.1MiB total-memory: 32.0MiB cpu: MIPS 24Kc V7.4 cpu-count: 1 cpu-frequency: 650MHz cpu-load: 99% free-hdd-space: 5.5MiB total-hdd-space: 16.0MiB write-sect-since-reboot: 615 write-sect-total: 549097 bad-blocks: 0% architecture-name: smips board-name: hAP mini platform: MikroTik Connection to RouterOS Successful! certificates-imported: 1 private-keys-imported: 0 files-imported: 1 decryption-failures: 0 keys-with-no-certificate: 0 certificates-imported: 0 private-keys-imported: 1 files-imported: 1 decryption-failures: 0 keys-with-no-certificate: 0 IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/mikrotik-ssl-blog.wow.net.id/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/mikrotik-ssl-blog.wow.net.id/privkey.pem Your cert will expire on 2021-02-01. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Apabila hasilnya seperti di atas maka ssl Anda telah dibuat, ssl let’s encrypt sudah di upload ke mikrotik dan Anda bisa cek dengan perintah berikut:
[[email protected]] > /certificate print detail where common-name=mikrotik-ssl-blog.wow.net.id Flags: K - private-key, L - crl, C - smart-card-key, A - authority, I - issued, R - revoked, E - expired, T - trusted 0 K T name="cert1.pem_0" issuer=C=US,O=Let's Encrypt,CN=Let's Encrypt Authority X3 digest-algorithm=sha256 key-type=rsa common-name="mikrotik-ssl-blog.wow.net.id" key-size=4096 subject-alt-name=DNS:mikrotik-ssl-blog.wow.net.id days-valid=90 trusted=yes key-usage=digital-signature,key-encipherment,tls-server,tls-client serial-number="0327F413E70BC21A305E62273BD1740F66A9" fingerprint="31ef9c738eaa0c94888265946f41ad178a45eeac84c3d45f9b24934fb6c43db5" invalid-before=nov/03/2020 11:59:53 invalid-after=feb/01/2021 11:59:53 expires-after=12w5d20h7m44s [[email protected]] >
upload juga file fullchain yang terdapat di /etc/letsencrypt/archive/mikrotik-ssl-blog.wow.net.id/fullchain1.pem untuk menghindari CA missing pada pesan browser, berikut adalah cara upload ke mikrotik dari server :
[email protected]:~$ ftp 10.85.255.2 Connected to 10.85.255.2. 220 Mikrotik FTP server (MikroTik 6.46.7) ready Name (10.85.255.2:wownet): wownet 331 Password required for wownet Password: 230 User wownet logged in Remote system type is UNIX. ftp> put fullchain1.pem local: fullchain1.pem remote: fullchain1.pem 200 PORT command successful 150 Opening ASCII mode data connection for 'fullchain1.pem' 226 ASCII transfer complete 3324 bytes sent in 0.00 secs (21.8622 MB/s) ftp> exit 221 Closing
Instal fullchain tersebut dengan melakukan login ke mikrotik dan eksekusi perintah berikut
[[email protected]] > /certificate import file-name=ssl/fullchain1.pem passphrase: certificates-imported: 1 private-keys-imported: 0 files-imported: 1 decryption-failures: 0 keys-with-no-certificate: 0 [[email protected]] >
Untuk memasang setifikat tersebut pada https, silakan login kembali ke mikrotik dan ketikkan perintah dibawah ini
[[email protected]] > /ip service set www-ssl certificate=cert1.pem_0
Cek dengan browser
Setelah melakukan pemasangan certificate, silakan mencoba mengakses domain Anda, contohnya https://mikrotik-ssl-blog.wow.net.id

Apabila pada icon kunci berwarna hijau atau tidak merah silang, maka pemasangan SSL Anda berhasil