GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Mengamankan Nginx dengan Let's Encrypt di CentOS 8

Pada artikel ini, kami akan menjelaskan langkah-langkah yang diperlukan untuk mengamankan Nginx dengan enkripsi mari di CentOS 8. 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 yang menyediakan sertifikat SSL gratis untuk situs web, beroperasi sejak April 2016, dan didukung oleh perusahaan dan organisasi internet dunia seperti Mozilla, Cisco, Chrome , Akamai, dll.

Prasyarat:

  • Sistem Operasi dengan CentOS Linux
  • 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 DNF

Amankan Nginx dengan Let's Encrypt di CentOS

Langkah 1. Perintah pertama akan memperbarui daftar paket untuk memastikan Anda mendapatkan versi dan dependensi terbaru.

sudo dnf install epel-release
sudo dnf update
sudo dnf install mod_ssl openssl

Sebelum menginstal domain SSL Let’s Encrypt sebaiknya diakses dengan baik dan gunakan virtual host Nginx. Baca tutorial cara install Nginx di CentOS 8.

Langkah 2. Instal Certbot.

Paket certbot tidak termasuk dalam repositori CentOS 8 standar, tetapi dapat diunduh dari situs web vendor:

sudo wget -P /usr/local/bin https://dl.eff.org/certbot-auto
sudo chmod +x /usr/local/bin/certbot-auto

Selanjutnya, buat set baru parameter DH 2048-bit menggunakan perintah berikut:

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

Untuk mendapatkan sertifikat SSL untuk domain, kita akan menggunakan plugin Webroot yang bekerja dengan membuat file sementara untuk memvalidasi domain yang diminta di direktori ${webroot-path}/.well-known/acme-challenge:

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

Untuk menghindari duplikasi kode, buat dua cuplikan berikut yang akan disertakan dalam semua file blok server Nginx:

sudo mkdir /etc/nginx/snippets
$ 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;
}
$ 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 off;

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=63072000" always;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;

Setelah cuplikan dibuat, buka blok server domain dan sertakan cuplikan letsencrypt.conf, seperti yang ditunjukkan di bawah ini:

$ nano /etc/nginx/conf.d/example.com.conf

server {
  listen 80;
  server_name example.com www.example.com;

  include snippets/letsencrypt.conf;
}

Muat ulang konfigurasi Nginx agar perubahan diterapkan:

sudo systemctl reload nginx

Kemudian, jalankan perintah ini untuk mendapatkan sertifikat dan minta Certbot mengedit konfigurasi Nginx Anda secara otomatis untuk menyajikannya, mengaktifkan akses HTTPS dalam satu langkah:

sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d your-domain.com -d www.your-domain.com

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

$ nano /etc/nginx/conf.d/example.com.conf

server {
    listen 80;
    server_name www.your-domain.com your-domain.com;

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

server {
    listen 443 ssl http2;
    server_name www.your-domain.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;

    # . . . other code
}

Muat ulang layanan Nginx agar perubahan diterapkan:

sudo systemctl reload nginx

Langkah 4. 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

Selamat, Anda telah mempelajari cara mengamankan Nginx dengan mari mengenkripsi di CentOS 8. Jika Anda memiliki pertanyaan, silakan tinggalkan komentar di bawah.


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

  2. Cara Menginstal Let's Encrypt di CentOS 8 Dengan Nginx

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

  1. Cara Menginstal Phorum dengan Nginx di CentOS 7

  2. Cara Mengamankan Nginx dengan Letsencrypt di Rocky Linux/Centos 8

  3. Cara Menginstal Let's Encrypt dengan Apache di CentOS 7

  1. Amankan Nginx dengan Lets Encrypt di CentOS 7

  2. Cara Menginstal Nginx di CentOS 7

  3. Amankan Apache dengan Lets Encrypt di CentOS 8