Cara Install SSL Let's Encrypt di Nginx Ubuntu
Introduction
Let’s Encrypt adalah provider yang menyediakan cara mudah untuk memperoleh dan menginstal sertifikat TLS/SSL gratis, yang memungkinkan penggunaan HTTPS terenkripsi pada server web. Mereka menyederhanakan proses ini dengan menyediakan perangkat lunak bernama Certbot, yang mencoba mengotomatisasi sebagian besar langkah yang diperlukan. Saat ini, proses pengambilan dan instalasi sertifikat sudah sepenuhnya otomatis pada server Apache dan Nginx.
Dalam panduan ini, kita akan menggunakan Certbot untuk mendapatkan sertifikat SSL gratis untuk Nginx pada sistem operasi Ubuntu, dan mengatur agar sertifikat tersebut diperbarui secara otomatis.
kita juga akan menggunakan file konfigurasi server Nginx yang terpisah daripada file default. Hal ini kami sarankan untuk menghindari kesalahan umum dan menjaga file default sebagai konfigurasi cadangan.
Persiapan
Untuk mengikuti panduan ini, Anda akan memerlukan:
- Satu server Ubuntu yang sudah disiapkan sesuai dengan panduan persiapan awal server untuk Ubuntu, termasuk pengguna non-root yang diaktifkan dengan sudo dan firewall.
- Nama domain yang sudah terdaftar. Panduan ini akan menggunakan
example.com
sepanjang tutorial. Kamu dapat membeli nama domain dari Namecheap, mendapatkannya secara gratis dengan Freenom, atau menggunakan registrar domain pilihan Anda. - Kedua DNS record berikut sudah diatur untuk server.
- A Record denganexample.com
mengarah ke alamat IP publik server Anda.- A Record denganwww.example.com
mengarah ke alamat IP publik server Anda.
- Nginx sudah diinstal dengan mengikuti panduan Cara Menginstal Nginx di Ubuntu. Pastikan kamu memiliki blok server untuk domain. Panduan ini akan menggunakan /etc/nginx/sites-available/contoh.com sebagai contoh.
Step 1 — Installing Certbot
Certbot merekomendasikan untuk menggunakan paket snap untuk instalasinya. Paket snap dapat digunakan di hampir semua distribusi Linux, tetapi kita perlu menginstal snapd terlebih dahulu untuk mengelola paket snap. Ubuntu sudah memiliki dukungan untuk snap dari awal, jadi pastikan snapd core Anda sudah diperbarui:
Jika kamu sedang menggunakan pada server yang sebelumnya sudah menginstal versi lama dari Certbot, kamu sebaiknya menghapusnya sebelum melanjutkan lebih jauh:
Setelah itu kamu bisa menginstall
certbot
package:Terakhir, kamu dapat menyematkan perintah certbot dari direktori instalasi snap ke path kamu, sehingga kamu dapat menjalankannya hanya dengan mengetik certbot. Ini tidak diperlukan dengan semua paket, tetapi snap cenderung kurang mengganggu secara default, sehingga tidak bertentangan dengan paket sistem lain secara tidak sengaja:
Sekarang kita sudah memiliki Cerbot yang terinstall, selanjutnya kita bisa menjalankannya untuk mendapatkan sertifikat SSL.
Step 2 — Confirming Nginx’s Configuration
Certbot perlu dapat menemukan blok server yang benar dalam konfigurasi Nginx kita agar dapat mengonfigurasi SSL secara otomatis. Secara khusus, hal ini dilakukan dengan mencari direktif
server_name
yang sesuai dengan domain yang kita minta sertifikatnya.Jika Anda telah mengikuti langkah pengaturan blok server dalam panduan instalasi Nginx, seharusnya kita memiliki blok server untuk domain kita di
/etc/nginx/sites-available/example.com
dengan direktif server_name
sudah diatur dengan benar.Untuk memeriksanya, buka file konfigurasi untuk domain bisa menggunakan nano atau editor teks favorit kamu:
Temukan baris server kita pada
server_name
. Itu seharusnya akan seperti ini:Jika sudah sesuai, keluar dari editor dan lanjutkan ke langkah berikutnya.
Jika belum sesuai, perbarui sesuai dengan yang diperlukan. Kemudian simpan file tersebut, keluar dari editor, dan verifikasi sintaks dari suntingan konfigurasi Anda:
Jika kamu mendapatkan error, buka kembali file blok server dan periksa apakah ada ketikan salah atau karakter yang hilang. Setelah sintaks file konfigurasi sudah benar, muat ulang Nginx untuk memuat konfigurasi baru:
Sekarang Certbot dapat menemukan blok
server
yang benar dan memperbarui secara otomatis.Selanjutnya, mari perbarui firewall untuk mengizinkan lalu lintas HTTPS.
Step 3 — Allowing HTTPS Through the Firewall
Jika kamu telah mengaktifkan firewall
ufw
, seperti yang direkomendasikan oleh panduan prasyarat, kamu perlu menyesuaikan pengaturan untuk mengizinkan lalu lintas HTTPS. Untungnya, Nginx mendaftarkan beberapa profil dengan ufw saat instalasi.Kamu dapat melihat pengaturan saat ini dengan mengetik:
Itu seharusnya menampilkan hasil seperti ini yang berarti hanya HTTP traffic yang diijinkan oleh web server:
Untuk memperbolehkan lalu lintas HTTPS tambahan, izinkan profil Nginx Full dan hapus izin profil Nginx HTTP yang tidak diperlukan lagi:
Status server kamu seharusnya sekarang terlihat seperti ini:
Selanjutnya kita akan menjalankan Certbot dan fetch sertifikat SSL untuk website kita.
Step 4 — Obtaining an SSL Certificate
Certbot menyediakan berbagai cara untuk memperoleh sertifikat SSL melalui plugin. Plugin Nginx akan mengurus pengkonfigurasian ulang Nginx dan memuat ulang konfigurasi saat diperlukan. Untuk menggunakan plugin ini, ketik yang berikut:
Ini menjalankan certbot dengan plugin --nginx, menggunakan -d untuk menentukan nama domain yang ingin sertifikatnya valid.
Saat menjalankan perintah tersebut, kita akan diminta untuk memasukkan alamat email dan menyetujui syarat dan ketentuan layanan. Setelah melakukannya, kita seharusnya akan melihat pesan yang memberi tahu kita bahwa prosesnya berhasil dan di mana sertifikat SSL disimpan:
Sertifikat kamu sudah diunduh, diinstal, dan dimuat, dan konfigurasi Nginx kamu sekarang secara otomatis akan mengalihkan semua permintaan web ke
https://
. Coba muat ulang situs web kamu dan perhatikan indikator keamanan browser. Biasanya, itu akan menunjukkan bahwa situs tersebut aman dengan ikon gembok. Jika kamu menguji server menggunakan SSL Labs Server Test, itu akan mendapatkan nilai A.Mari selesaikan dengan menguji proses pembaharuan.
Step 5 — Verifying Certbot Auto-Renewal
Sertifikat Let’s Encrypt hanya berlaku selama sembilan puluh hari. Hal ini bertujuan untuk mendorong pengguna untuk mengotomatisasi proses pembaharuan sertifikat mereka. Paket
certbot
yang kita instal akan mengurus ini dengan menambahkan timer systemd yang akan berjalan dua kali sehari dan secara otomatis memperbarui sertifikat apa pun yang akan kedaluwarsa dalam tiga puluh hari.Anda dapat memeriksa status timer dengan menggunakan perintah
systemctl
:Untuk mengujicoba proses pembaruan sertifikat, kita bisa menjalankan dry run
certbot
:Jika kamu tidak melihat kesalahan, semuanya sudah siap. Ketika diperlukan, Certbot akan memperbarui sertifikat dan memuat ulang Nginx untuk menerapkan perubahan tersebut. Jika proses pembaharuan otomatis gagal, Let’s Encrypt akan mengirim pesan ke email yang kamu tentukan, memberi peringatan saat sertifikat hampir kedaluwarsa.
Conclusion
Dalam panduan ini, kita telah menginstal Let’s Encrypt
certbot
, mengunduh sertifikat SSL untuk domain kita, mengonfigurasi Nginx untuk menggunakan sertifikat tersebut, dan mengatur pembaharuan sertifikat otomatis. Jika kamu memiliki pertanyaan lebih lanjut tentang penggunaan Certbot, dokumentasi resmi adalah tempat yang baik untuk memulai.