Warning: Undefined variable $post in /var/www/saksenengku/wp-content/plugins/simple-google-schema/index.php on line 140

Warning: Attempt to read property "ID" on null in /var/www/saksenengku/wp-content/plugins/simple-google-schema/index.php on line 140
Cara Secure Nginx dengan Let’s Encrypt di Debian 11 – Saksenengku Network
Site icon Saksenengku Network

Cara Secure Nginx dengan Let’s Encrypt di Debian 11

Debian 11 + Let's Encrypt

Let’s Encrypt adalah Certificate Authority (CA) yang menyediakan cara mudah untuk mendapatkan dan menginstal sertifikat TLS/SSL gratis, sehingga memungkinkan HTTPS terenkripsi di webserver.
Ini menyederhanakan proses dengan menyediakan klien perangkat lunak, Certbot, yang mencoba mengotomatiskan sebagian besar (jika tidak semua) langkah yang diperlukan. Saat ini, seluruh proses mendapatkan dan menginstal sertifikat sepenuhnya otomatis di Apache dan Nginx.

Dalam tutorial ini, Anda akan menggunakan Certbot untuk mendapatkan sertifikat SSL gratis untuk Nginx di Debian 11 dan menyiapkan sertifikat Anda untuk diperpanjang secara otomatis.

Tutorial ini akan menggunakan file konfigurasi server Nginx yang terpisah, bukan file default.
Kami menyarankan untuk membuat file blok server Nginx baru untuk setiap domain karena membantu menghindari kesalahan umum dan mempertahankan file default sebagai konfigurasi cadangan.

Prasyarat

Untuk mengikuti tutorial ini, Anda memerlukan:

Langkah 1 — Menginstal Certbot

Langkah pertama untuk menggunakan Let’s Encrypt untuk mendapatkan sertifikat SSL adalah menginstal perangkat lunak Certbot di server Anda.

Instal Certbot dan plugin Nginx-nya dengan apt:

sudo apt install certbot python3-certbot-nginx

Certbot sekarang siap digunakan, tetapi agar dapat secara otomatis mengkonfigurasi SSL untuk Nginx, kita perlu memverifikasi beberapa konfigurasi Nginx.

Langkah 2 — Mengonfirmasi Konfigurasi Nginx

Certbot harus dapat menemukan blok server yang benar dalam konfigurasi Nginx Anda agar dapat mengonfigurasi SSL secara otomatis. Secara khusus, ia melakukan ini dengan mencari direktif server_name yang cocok dengan domain yang Anda minta sertifikatnya.

Jika Anda mengikuti langkah penyiapan blok server dalam tutorial penginstalan Nginx, Anda harus memiliki blok server untuk domain Anda di /etc/nginx/sites-available/saksenengku.com dengan direktif server_name yang sudah disetel dengan tepat.

Untuk memeriksa, buka file konfigurasi untuk domain Anda menggunakan nano/vim atau editor teks favorit Anda:

sudo nano /etc/nginx/sites-available/saksenengku.com

Temukan baris nama_server yang ada. Seharusnya terlihat seperti ini:

/etc/nginx/sites-available/saksenengku.com

...
server_name saksenengku.com www.saksenengku.com;
...

Jika ya, keluar dari editor Anda dan lanjutkan ke langkah berikutnya.

Jika tidak, perbarui agar sesuai. Kemudian simpan file, keluar dari editor Anda, dan verifikasi sintaks pengeditan konfigurasi Anda:

sudo nginx -t

Jika Anda mendapatkan kesalahan, buka kembali file blok server dan periksa kesalahan ketik atau karakter yang hilang. Setelah sintaks file 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 perbarui firewall untuk mengizinkan lalu lintas HTTPS.

Langkah 3 — Mengizinkan HTTPS Melalui Firewall

Jika Anda mengaktifkan firewall ufw, seperti yang direkomendasikan oleh panduan prasyarat, Anda harus menyesuaikan pengaturan untuk mengizinkan lalu lintas HTTPS. Untungnya, Nginx mendaftarkan beberapa profil dengan ufw setelah instalasi.
Anda dapat melihat pengaturan saat ini dengan mengetik:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?y
Firewall is active and enabled on system startup
sudo ufw status

Akan terlihat seperti ini, artinya hanya lalu lintas HTTP yang diizinkan ke server web:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Untuk tambahan membiarkan lalu lintas HTTPS, izinkan profil Lengkap Nginx dan hapus redundant profil HTTP Nginx yang berlebihan:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

Sekarang akan terlihat seperti ini:

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

Langkah 4 — Memperoleh Sertifikat SSL

Certbot menyediakan berbagai cara untuk mendapatkan sertifikat SSL melalui plugin. Plugin Nginx akan menangani konfigurasi ulang Nginx dan memuat ulang konfigurasi kapan pun diperlukan. Untuk menggunakan plugin ini, ketik berikut ini:

sudo certbot --nginx -d saksenengku.com -d www.saksenengku.com

Ini menjalankan certbot dengan plugin –nginx, menggunakan -d untuk menentukan nama domain yang kami inginkan agar sertifikatnya valid.

Jika ini adalah pertama kalinya Anda menjalankan certbot, Anda akan diminta untuk memasukkan alamat email dan menyetujui persyaratan layanan. Setelah melakukannya, certbot akan berkomunikasi dengan server Let’s Encrypt, lalu memverifikasi bahwa Anda mengontrol domain yang Anda minta sertifikatnya.

Konfigurasi akan diperbarui, dan Nginx akan memuat ulang untuk mengambil pengaturan baru. certbot akan diakhiri dengan pesan yang memberi tahu Anda bahwa prosesnya berhasil dan di mana sertifikat Anda disimpan:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2022-08-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. 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

Sertifikat Anda diunduh, diinstal, dan dimuat. Coba muat ulang situs web Anda menggunakan https:// dan perhatikan indikator keamanan browser Anda. Ini harus menunjukkan bahwa situs tersebut diamankan dengan benar, biasanya dengan ikon kunci. Jika Anda menguji server Anda menggunakan SSL Labs Server Test, itu akan mendapatkan nilai A.

Mari kita selesaikan dengan menguji proses pembaruan.

Langkah 5 — Memverifikasi Pembaruan Otomatis Certbot

Sertifikat Let’s Encrypt hanya berlaku selama sembilan puluh hari. Ini untuk mendorong pengguna mengotomatiskan proses perpanjangan sertifikat mereka. Paket certbot yang kami instal menangani ini untuk kami dengan menambahkan pengatur waktu systemd yang akan berjalan dua kali sehari dan secara otomatis memperbarui sertifikat apa pun yang dalam waktu tiga puluh hari setelah kedaluwarsa.

Anda dapat menanyakan status timer 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 2022-08-08 19:05:35 UTC; 11s ago
    Trigger: Tue 2022-08-09 07:22:51 UTC; 12h 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. Bila perlu, Certbot akan memperbarui sertifikat Anda dan memuat ulang Nginx untuk mengambil perubahan.
Untuk mengecheck certificate masa berlaku sampai kapan dapat menggunakan perintah:

certbot certificates

Output

Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: saksenengku.com
    Serial Number: 3bb0612463a0bea164028292a58bd1833f6
    Key Type: RSA
    Domains: saksenengku.com www.saksenengku.com
    Expiry Date: 2022-10-29 12:31:16+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/saksenengku.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/saksenengku.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Dan Jika proses perpanjangan otomatis gagal, Let’s Encrypt akan mengirim pesan ke email yang Anda tentukan, memperingatkan Anda saat sertifikat Anda akan kedaluwarsa.

Kesimpulan

Dalam tutorial ini, Anda menginstal certbot klien Let’s Encrypt, mengunduh sertifikat SSL untuk domain Anda, mengonfigurasi Nginx untuk menggunakan sertifikat ini, dan mengatur pembaruan sertifikat otomatis.
Jika Anda memiliki pertanyaan lebih lanjut tentang menggunakan Certbot, dokumentasi resmi adalah tempat yang baik untuk memulai.
Selamat Mencoba…

Exit mobile version