GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengamankan Nginx dengan Let's Encrypt di Ubuntu 20.04

Pada artikel ini, kami akan menjelaskan langkah-langkah yang diperlukan untuk mengamankan Nginx dengan enkripsi mari di Ubuntu 20.04 LTS. Sebelum melanjutkan tutorial ini, pastikan Anda login sebagai pengguna dengan sudo hak istimewa. Semua perintah dalam tutorial ini harus dijalankan sebagai pengguna non-root.

Let's Encrypt adalah otoritas sertifikat gratis, otomatis, dan terbuka yang dikembangkan oleh Internet Security Research Group (ISRG) yang menyediakan sertifikat SSL gratis. Let's Encrypt menggunakan perangkat lunak klien (certbot) yang mengotomatiskan proses pembuatan sertifikat, validasi, penandatanganan, penerapan, dan pembaruan sertifikat.

Prasyarat:

  • Sistem Operasi dengan Ubuntu 20.04
  • Alamat IPv4 Server dengan Hak Pengguna Super (Akses Root)
  • Terminal Gnome untuk Desktop Linux
  • Klien Putty SSH untuk Windows atau macOS
  • Powershell untuk Windows 10/11
  • Familiar dengan Perintah APT

Amankan Nginx dengan Let's Encrypt di Ubuntu 20.04

Langkah 1. Pertama, sebelum Anda mulai menginstal paket apa pun di server Ubuntu Anda, kami selalu menyarankan untuk memastikan bahwa semua paket sistem telah diperbarui.

sudo apt update
sudo apt upgrade

Catatan:Sebelum menginstal, domain SSL Let’s Encrypt harus diakses dengan baik dan menggunakan virtual host Nginx. Baca tutorial tentang cara menginstal Nginx di Ubuntu.

Langkah 2. Instal Certbot.

Certbot adalah alat berfitur lengkap dan mudah digunakan yang mengotomatiskan tugas untuk memperoleh dan memperbarui sertifikat SSL Let's Encrypt dan mengonfigurasi server web untuk menggunakan sertifikat . Untuk menginstalnya jalankan perintah berikut:

sudo apt install certbot

Setelah itu, Buat satu set parameter DH 2048 bit baru dengan mengetikkan perintah berikut:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Server Let's Encrypt membuat permintaan HTTP ke file sementara untuk memverifikasi bahwa domain yang diminta diselesaikan ke server tempat certbot berjalan. Untuk membuatnya lebih sederhana, kita akan memetakan semua permintaan HTTP untuk .well-known/acme-challenge ke satu direktori, /var/lib/letsencrypt :

sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt

Kemudian, buat dua cuplikan berikut yang akan disertakan dalam semua file blok server Nginx:

sudo nano /etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ {
  allow all;
  root /var/lib/letsencrypt/;
  default_type "text/plain";
  try_files $uri =404;
}

Selanjutnya, buat cuplikan kedua, ssl.conf:

sudo nano /etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem;

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 30s;

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;

Selanjutnya, buka file blok server domain dan sertakan letsencrypt.conf:

sudo nano /etc/nginx/sites-available/example.com.conf
server {
  listen 80;
  server_name example.com www.example.com;

  include snippets/letsencrypt.conf;
}

Jangan lupa untuk membuat tautan simbolis dari file ke direktori yang mendukung situs:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Setelah selesai, jalankan Certbot dengan plugin webroot dan dapatkan file sertifikat SSL dengan menerbitkan:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Terakhir, langkah-langkah, edit blok server domain Anda sebagai berikut:

sudo nano /etc/nginx/sites-available/example.com.conf
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;
}

Muat ulang layanan Nginx agar perubahan diterapkan:

sudo systemctl reload nginx

Langkah 3. Memeriksa Status Sertifikat Anda.

Anda dapat memastikan bahwa Certbot membuat sertifikat SSL Anda dengan benar dengan menggunakan SSL Server Test dari perusahaan keamanan cloud Qualys. Buka tautan berikut di browser web pilihan Anda, ganti your-domain.com dengan domain dasar Anda:

https://www.ssllabs.com/ssltest/analyze.html?d=your-domain.com

Langkah 4. Perbarui Let's Encrypt SSL Certificate

Dan terakhir, uji perpanjangan otomatis:

sudo certbot renew --dry-run

Hanya itu yang perlu Anda lakukan untuk menginstal SSL Let's Encrypt with Nginx di Ubuntu 20.04 Focal Fossa. Saya harap Anda menemukan tip cepat ini bermanfaat. Jika Anda memiliki pertanyaan atau saran, jangan ragu untuk meninggalkan komentar di bawah.


Ubuntu
  1. Amankan Nginx dengan Let's Encrypt di Ubuntu 18.04 - Bagaimana cara melakukannya?

  2. Cara Mengamankan Nginx dengan Letsencrypt di Ubuntu 20.04

  3. Cara Menginstal Elgg dengan Nginx di Ubuntu 18.04

  1. Cara Mengamankan Nginx dengan Lets Encrypt Di Ubuntu 20.04 / 18.04

  2. Amankan Nginx dengan Lets Encrypt di Ubuntu 18.04

  3. Cara Mengamankan Nginx dengan Let's Encrypt di Ubuntu 20.04

  1. Amankan Nginx dengan Lets Encrypt di Ubuntu 16.04

  2. Amankan Nginx dengan Lets Encrypt di Ubuntu 20.04

  3. Amankan Nginx dengan Lets Encrypt di CentOS 8