Cara Install SSL Let's Encrypt di Nginx Ubuntu

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 dengan example.com mengarah ke alamat IP publik server Anda.
- A Record dengan www.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.