Blogging

Cara install SSL secara Manual di Nginx ServerPilot

Written by Tirta Wahyu · 4 min read >
Cara Install SSL secara Manual di Nginx Serverpilot

Apakah anda mencari tutorial memasang sertifikat SSL secara manual di ServerPilot Free Plan? Kalau iya berarti anda datang di tempat yang tepat! Karena di blog ini akan saya bahas bagaimana cara install ssl di VPS yang menggunakan webserver Nginx dan layanan ServerPilot gratis.

Sudah umum kita ketahui bahwa mengamankan sebuah website adalah hal wajib bagi para administrator website. Karena hal tersebut untuk mencegah dan menghindari serangan dari para penjahat cyber.

Banyak sekali cara mengamankan sebuah website. Salah satu cara agar website lebih aman adalah dengan memasang sertifikat SSL.

Dalam tutorial ini akan dibahas bagaimana cara konfigurasi sertifikat SSL di Nginx Serverpilot pada sistem operasi Ubuntu 18.04

Mari kita bahas 🙂

Apa itu SSL Certificate

SSL adalah kependekan dari Secure Socket Layer, sangat dibutuhkan untuk keamanan sebuah blog atau website. SSL melindungi pengguna website dengan cara meng-enkripsi data secara acak.

Selain itu, sertifikat SSL telah diumumkan oleh Google akan menjadi bagian dari salah satu penentu peringkat atau rangking sebuah blog di mesin pencari, khususnya Google.

Nah, sekilas saja tentang SSL yak! Untuk tau lebih banyak tentang SSL nantinya akan saya buatkan di postingan terpisah.

Serverpilot Free Plan dan DigitalOcean

Saya telah berhasil menerapkan sertifikat SSL secara manual pada blog saya ini yang dikembangkan dengan platform WordPress yang dihubungkan dengan ServerPilot Free Plan dan DigitalOcean.

Oh iya, saya menggunakan ServerPilot Free Plan ini didapatkan saat awal-awal ServerPilot mengenalkan produknya. Sekarang sepertinya sudah bayar, tidak ada lagi free plan. Yang ada hanya free trial saja. Coba cek di websitenya!

Cara install SSL di ServerPilot sebenarnya cukup mudah jika berlangganan paket premium karena sudah ada pengaturan di dashboardnya. Namun ingat, disini saya menggunakan ServerPilot yang gratis. Jadi disini saya akan menekankan pembahasan di tutorial ini untuk diterapkan pada paket Free Plan.

Pada awalnya saya yang minim pengetahuan tentang ini cukup sulit menemukan tutorial yang relevan terkait cara pemasangan sertifikat SSL ini. Ada beberapa tutorial di forum DigitalOcean namun gagal saya terapkan di server DigitalOcean.

Karena mengingat betapa pentingnya SSL certificates ini untuk keamanan suatu website. Maka saya tetap berusaha mencari tutorial satu per satu di internet.

Dan alhamdulillah akhirnya saya menemukan tutorial dari Drew Bindon berikut ini : Manually Add SSL to ServerPilot on Digital Ocean

Tutorial tersebut berbahasa Inggris, namun cara tersebut dapat diikuti dengan mudah.

Saya sampaikan disini juga dengan bahasa Indonesia agar lebih mudah lagi dipraktekkan teman-teman di Indonesia.

Oh iya, disini saya berlangganan VPS DigitalOcean yang saya hubungkan dengan ServerPilot Free Plan karena mudah perawatan dan pengembangannya.

Sertifikat SSL Sectigo saya dapatkan gratis dari NameCheap saat ada penawaran promo beberapa waktu yang lalu.

Baca juga : Cara upgrade Ubuntu di VPS

Konfigurasi sertifikat SSL secara Manual

Tentunya sudah diketahui bahwa ServerPilot memiliki layanan untuk konfigurasi SSL di dashboardnya. Namun harus membayar sekitar $5 per bulan.

Ditambah dengan biaya server DO, untuk sekelas saya ini berat. Makanya saya mencari cara pasang SSL di ServerPilot gratis dan sekaligus membagikan tutorial ini mumpung dapat promo gratis SSL dari NameCheap 😛

Cara memasang sertifikat SSL ini cukup mudah. Asumsinya anda sudah memiliki file sertifikat SSL .crt beserta file .key-nya.

Siapkan terminal untuk remote SSH. Saya menganggap anda sudah bisa meremote ssh ya!

Saya menggunakan Putty, setting sesuai dengan IP server.

Ikuti cara install SSL berikut ini :

Masuk ke folder Nginx ServerPilot

cd /etc/nginx-sp

Buat folder bebas untuk menempatkan file sertifikat. Ini bebas mau diberi nama apapun.

mkdir certs

Masih di folder nginx-sp lalu masuk ke folder certs dengan perintah

cd certs

Buat folder lagi sesuai nama domain agar mudah dicari dikemudian hari

mkdir domainanda.com

Jadi nanti anda memiliki direktori folder seperti ini

/etc/nginx-sp/certs/domainanda.com

Tempatkan file sertifikat .crt dan .key di folder tersebut.

Termasuk file .ca-bundle juga yang didapatkan dari penyedia layanan SSL.

Agar lebih mudah, maka gunakan aplikasi WinSCP atau Filezilla untuk mengunggah file sertifikat SSL-nya.

Hampir lupa!

Tahapan berikutnya membuat sertifikat berantai agar dipercaya di semua browser dengan menggabungkan file .crt dan file .ca-bundle.

Caranya melalui terminal Putty :

cat contoh.crt contoh.ca-bundle > contoh_chained.crt

File contoh_chained.crt inilah yang akan dipakai pada script Nginx.

Baca juga : Cara membuat Blog

Membuat Virtual Host di Nginx

Tujuan membuat aplikasi virtual host ini adalah untuk menjalankan SSL pada domain.

Oh iya, karena saya menggunakan ServerPilot maka folder web servernya khusus, yaitu nginx-sp.

Masih menggunakan Putty untuk remote SSH.

Masuk ke folder berikut ini,

cd /etc/nginx-sp/vhosts.d/namaaplikasianda.d

Nama aplikasi biasanya sesuai nama domain anda, kecuali anda buat dengan nama lain.

Jika belum tau bisa cek dengan perintah ls /etc/nginx-sp/vhosts.d/

Nanti akan muncul nama aplikasi website anda.

Kemudian buat file ssl.conf atau boleh bebas yang penting ingat ini untuk file konfigurasi SSL di Nginx.

Edit dengan perintah

nano ssl.conf

dan tempatkan kode konfigurasi Nginx berikut ini :

listen  443 ssl;
listen [::]:443 ssl;

ssl_certificate /etc/nginx-sp/certs/domainanda.com/contoh.crt;
ssl_certificate_key /etc/nginx-sp/certs/domainanda.com/contoh.key;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;

ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH!aNULL:!MD5:!DSS;

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx-sp/certs/domainanda.com/contoh.crt;

set $ssl_status off;

if ($scheme = "https") {
set $ssl_status on;
}

proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl $ssl_status;

Teliti dan sesuaikan direktori untuk file contoh_chained.crt dan file contoh.key ya!

Yang ini :

ssl_certificate /etc/nginx-sp/certs/domainanda.com/contoh_chained.crt;

ssl_certificate_key/etc/nginx-sp/certs/domainanda.com/contoh.key;

ssl_trusted_certificate /etc/nginx-sp/certs/domainanda.com/contoh_chained.crt;

Jangan lupa simpan ya!

Biasanya ctrl + x

Ada keterangannya kok!

Masih difolder /etc/nginx-sp/vhosts.d/namaaplikasianda.d

Langkah selanjutnya adalah membuat file off.nonssl_conf dengan penamaan bebas terserah anda.

File ini untuk menempatkan script yang akan digunakan untuk redirect ssl (mengarahkan http ke https).

Langsung edit ya!

nano off.nonssl_conf

Letakkan kode berikut

if ($scheme != "https") { return 301 https://$server_name$request_uri; } 

Kemudian simpan!

Setelah selesai maka perlu cek file konfigurasi diatas apakah sudah berjalan di Nginx atau belum dengan perintah berikut :

nginx-sp -t

Pastikan OK scriptnya berjalan di Nginx Serverpilot.

Lalu langkah terakhir adalah restart web server Nginx dengan perintah berikut :

service nginx-sp restart

Jika semua berhasil, maka SSL sudah terpasang di domain anda.

Coba cek dengan memasukan domain anda di browser, pastikan http:// sudah mengarah ke https://

Atau bisa cek di SSL Checker dengan memastikan hasilnya centang hijau semua.

Selesai!

Baca juga : Cara menghasilkan uang dari Blog

Penutup

Cara diatas sudah berhasil saya terapkan untuk memasang sertifikat SSL di domain beberapa blog yang saya kelola. Cara install ssl tersebut semuanya berjalan dengan baik.

Menggunakan ServerPilot Free Plan saya kira sama saja dengan konfigurasi secara manual pada paket premium. Namun ngapain susah-susah jika sudah ada fitur SSL di dashboard ServerPilot berbayar.

Jika ada kendala silahkan bisa langsung berdiskusi di komentar 🙂

Written by Tirta Wahyu
Mantan mahasiswa "sok" IT dari Kampus Ungu Jogja. Saat ini sedang bergelut di dunia blogging, dan mempelajari internet marketing. Profile

Beneran nih nggak mau komen?

Your email address will not be published. Required fields are marked *