Prasyarat
Untuk mengikuti tutorial ini, Anda akan membutuhkan:
Satu server Ubuntu 20.04 yang disiapkan dengan mengikuti tutorial penyiapan server awal untuk Ubuntu 20.04 ini, termasuk satu pengguna non-root yang mendukung sudo dan satu firewall.
Nama domain yang terdaftar. Tutorial ini akan menggunakan example.com di seluruh bagiannya. Anda dapat membeli nama domain dari Namecheap, mendapatkan nama domain gratis dengan Freenom, atau menggunakan registrar domain pilihan Anda.
Kedua catatan DNS berikut disiapkan untuk server Anda. Jika Anda menggunakan DigitalOcean, silakan lihat dokumentasi DNS kami untuk detail tentang cara menambahkannya.
Catatan A dengan example.com yang menunjuk ke alamat IP publik server Anda.
Catatan A dengan www.example.com yang menunjuk ke alamat IP publik server Anda.
Nginx yang terinstal dengan mengikuti Cara Menginstal Nginx pada Ubuntu 20.04. Pastikan Anda memiliki blok server untuk domain Anda. Tutorial ini akan menggunakan /etc/nginx/sites-available/example.com sebagai contoh.
Langkah 1 — Menginstal Certbot
Langkah pertama untuk menggunakan Let’s Encrypt untuk memperoleh sertifikat SSL
adalah dengan menginstal perangkat lunak Certbot pada server Anda.
Instal Certbot dan plugin Nginx dengan apt:
sudo apt install certbot python3-certbot-nginx
Certbot kini siap digunakan, namun agar Certbot dapat mengonfigurasi SSL secara
otomatis untuk Nginx, kita perlu memverifikasi beberapa konfigurasi Nginx.
Langkah 2 — Mengonfirmasi Konfigurasi Nginx
Certbot harus mampu menemukan blok server yang benar pada konfigurasi Nginx
Anda agar dapat mengonfigurasi SSL secara otomatis. Secara khusus, Certbot melakukan
ini dengan mencari arahan server_name yang sesuai dengan domain yang sertifikatnya
Anda mintakan.
Jika Anda mengikuti langkah penyiapan blok server dalam tutorial instalasi Nginx,
Anda seharusnya memiliki blok server untuk domain Anda di /etc/nginx/sites-available/example.com dengan arahan server_name yang sudah
disiapkan dengan benar.
Untuk memeriksa, buka berkas konfigurasi untuk domain Anda dengan menggunakan nano
atau editor teks favorit Anda:
sudo nano /etc/nginx/sites-available/example.com
Cari baris server_name yang sudah ada. Baris itu akan terlihat seperti ini:
Jika terlihat seperti itu, keluar dari editor Anda dan lanjutkan ke langkah selanjutnya.
Jika tidak, perbarui supaya sesuai. Lalu simpan berkas itu, keluar dari editor Anda,
dan lakukan verifikasi sintaks dari editan konfigurasi Anda:
sudo nginx -t
Jika Anda mendapat pesan kesalahan, buka kembali berkas blok server dan periksa
adanya salah tik atau karakter yang hilang. Setelah sintaks berkas konfigurasi Anda benar,
muat ulang Nginx untuk memuat konfigurasi baru:
sudo systemctl reload nginx
Certbot sekarang dapat menemukan blok server yang benar dan memperbaruinya
secara otomatis.
Selanjutnya, mari kita perbarui firewall untuk mengizinkan lalu lintas HTTPS.
Langkah 3 — Mengizinkan HTTPS Melewati Firewall
Jika firewall ufw Anda sudah diaktifkan, seperti yang disarankan oleh panduan prasyarat,
Anda perlu menyesuaikan pengaturan untuk mengizinkan lalu lintas HTTPS. Untungnya,
Nginx mendaftarkan beberapa profil dengan ufw pada saat instalasi.
Anda dapat melihat pengaturan saat ini dengan mengetik:
sudo ufw status
Mungkin akan terlihat seperti ini, artinya bahwa hanya lalu lintas HTTP yang diizinkan
ke server web:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Untuk menambahkan lalu lintas HTTPS yang masuk, mengizinkan profil Nginx Full, dan
menghapus izin profil HTTP Nginx yang lewah:
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
Status Anda sekarang akan terlihat seperti ini:
sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Selanjutnya, mari kita jalankan Certbot dan ambil sertifikat kita.
Langkah 4 — Memperoleh Sertifikat SSL
Certbot menyediakan berbagai cara untuk memperoleh sertifikat SSL melalui plugin.
Plugin Nginx akan menangani konfigurasi ulang Nginx dan memuat ulang konfigurasi itu
ketika diperlukan. Untuk menggunakan plugin ini, ketik yang berikut ini:
sudo certbot --nginx -d example.com -d www.example.com
Ini menjalankan certbot dengan plugin --nginx, menggunakan -d untuk menentukan
nama domain yang kita ingin sertifikatnya valid digunakan.
Jika ini adalah pertama kalinya Anda menjalankan certbot, Anda akan diminta
memasukkan alamat email dan menyetujui persyaratan layanan. Setelah melakukan itu,
certbot akan berkomunikasi dengan server Let’s Encrypt, lalu menjalankan tantangan untuk memverifikasi bahwa Anda mengontrol domain yang Anda mintakan sertifikatnya.
Jika itu berhasil, certbot akan bertanya bagaimana Anda ingin mengonfigurasi
pengaturan HTTPS Anda.
Sertifikat Anda sudah diunduh, terinstal, dan dimuat. Coba muat ulang situs Anda dengan
menggunakan https:// dan perhatikan indikator keamanan di peramban Anda. Seharusnya
ada indikasi bahwa situs itu sudah diamankan dengan benar, biasanya dengan ikon kunci.
Jika Anda menguji server Anda menggunakan SSL Labs Server Test, server akan mendapat nilai A.
Mari kita selesaikan dengan menguji proses pembaruan ini.
Langkah 5 — Memverifikasi Pembaruan Otomatis Certbot
Sertifikat Let’s Encrypt hanya berlaku selama 90 hari. Ini dimaksudkan untuk mendorong pengguna untuk mengotomatiskan proses pembaruan sertifikat mereka. Paket certbot yang kita instal akan mengurus ini untuk kita dengan menambahkan pengatur waktu systemd yang akan berjalan dua kali sehari dan secara otomatis memperbarui sertifikat apa pun yang akan kedaluarsa dalam waktu 30 hari.
Anda dapat menanyakan status pengatur waktu dengan systemctl:
sudo systemctl status certbot.timer
Output
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago
Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left
Triggers: ● certbot.service
Untuk menguji proses pembaruan, Anda dapat melakukan uji coba dengan certbot:
sudo certbot renew --dry-run
Jika Anda tidak melihat kesalahan, Anda sudah siap. Ketika diperlukan, Certbot akan memperbarui sertifikat Anda dan memuat ulang Nginx untuk menerapkan perubahan itu. Jika proses pembaruan otomatis itu terus-menerus gagal, Let’s Encrypt akan mengirim pesan ke surel yang Anda tentukan, memperingatkan Anda saat sertifikat Anda akan berakhir.
untuk melihat list sertifikat bisa menggunakan perintah berikut ini :
sudo certbot certificates
Untuk membuat renew secara otomatis gunakan cron job seperti ini
sudo crontab -e
0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log
0 Comments