GNU/Linux >> Belajar Linux >  >> Debian

Cara Memasang Let's Encrypt SSL di Nginx di Debian 11

Let's Encrypt adalah otoritas sertifikat yang menyediakan sertifikat SSL gratis untuk situs web. Namun, ia tidak hanya menawarkan sertifikat SSL; itu juga mengotomatiskan pembuatan sertifikat, validasi, penandatanganan, implementasi, dan pembaruan sertifikat.

Let's Encrypt adalah otoritas sertifikat terbesar di dunia, digunakan oleh lebih dari 250 juta situs web. Diluncurkan pada November 2014 dengan tujuan agar semua situs web aman dan menggunakan HTTPS.

Saat ini, Let's Encrypt mendukung penginstalan otomatis sertifikat di Apache, Nginx, Plex, dan Haproxy.

Di sini, kita akan melihat cara menginstal Let's Encrypt SSL Certificate untuk Nginx di Debian 11.

Prasyarat

Saya sarankan Anda menyiapkan server web instal Nginx di sistem Anda sebelum melanjutkan lebih jauh.

BACA: Cara Memasang LEMP Stack di Debian 11

Buat Virtualhost

Pertama, kita perlu membuat virtual host Nginx untuk melayani versi HTTP situs web Anda.

sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

Gunakan konfigurasi di bawah ini untuk situs web Anda. Ingatlah untuk mengubah nilai berdasarkan kebutuhan Anda.

Anda dapat menghapus bagian PHP Fast CGI jika Anda tidak menggunakan CMS seperti WordPress, Joomla, dll., atau aplikasi berbasis PHP.

server {
   server_name itzgeek.net www.itzgeek.net;
   root /usr/share/nginx/www.itzgeek.net/;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.itzgeek.net.access.log;
   error_log /var/log/nginx/www.itzgeek.net.error.log;

   location ~ \.php$ {
      include fastcgi_params;
      fastcgi_intercept_errors on;
      fastcgi_pass unix:/run/php/php7.4-fpm.sock;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Setelah Anda membuat file konfigurasi host virtual, buat direktori root untuk menyimpan file situs web Anda.

sudo mkdir -p /usr/share/nginx/www.itzgeek.net/

Kemudian, ubah kepemilikan dan grup direktori.

sudo chown -R www-data:www-data /usr/share/nginx/www.itzgeek.net/

Terakhir, tempatkan file HTML uji pada root dokumen domain Anda.

echo "This is a test site @ www.itzgeek.net" | sudo tee /usr/share/nginx/www.itzgeek.net/index.html

Sekarang, Anda perlu memulai ulang layanan Nginx untuk membaca ulang konfigurasi.

sudo systemctl restart nginx

Buat / Perbarui Data DNS

Untuk menghasilkan sertifikat SSL Let's Encrypt untuk domain Anda, Anda harus mengarahkan domain ke IP server Anda. Jadi, buka pendaftar domain Anda dan buat data A/CNAME untuk domain Anda. Misalnya, gambar di bawah ini menunjukkan data A/CNAME untuk domain www.itzgeek.net.

Perubahan catatan DNS akan membutuhkan waktu untuk disebarkan. Jadi, tunggu beberapa menit hingga berjam-jam, tergantung pada TTL yang Anda setel untuk catatan DNS.

Instal Let's Encrypt SSL Certificate Untuk Nginx

Instal Certbot

Selain mengarahkan domain ke IP server Anda, Anda juga perlu menginstal klien Certbot ACME di sistem Anda. Klien Certbot menangani penerbitan dan pemasangan sertifikat tanpa waktu henti.

Certbot sekarang tersedia sebagai paket snap untuk sistem operasi Debian. Jadi, pertama, instal paket Snapd.

sudo apt update

sudo apt install -y snapd

Kemudian, perbarui snapd ke versi terbaru.

sudo snap install core; sudo snap refresh core

Terakhir, instal klien Certbot menggunakan perintah snap.

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Instal Let's Encrypt Certificate

Gunakan perintah certbot untuk membuat sertifikat Let's Encrypt dan konfigurasikan Nginx untuk menggunakan sertifikat tersebut.

sudo certbot --nginx

Ikuti perintah interaktif dan instal sertifikat.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected] << Enter Email ID

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y  << Agree to Terms and Conditions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N << Subscriber to Newsletter
Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: itzgeek.net
2. www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1,2 << Choose Site to Install Let's Encrypt SSL Certificate
Requesting a certificate for www.itzgeek.net

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/www.itzgeek.net/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/www.itzgeek.net/privkey.pem
This certificate expires on 2022-01-17.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for www.itzgeek.net to /etc/nginx/conf.d/www.itzgeek.net.conf
Congratulations! You have successfully enabled HTTPS on https://www.itzgeek.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Setelah Anda mengaktifkan HTTPS untuk domain Anda, klien Certbot akan menempatkan aturan penulisan ulang yang diperlukan untuk mengalihkan lalu lintas dari HTTP ke situs HTTPS.

Dalam kasus saya, ini telah menempatkan dua aturan untuk pengalihan di bawah ini.

  1. http://itzgeek.net>> https://itzgeek.net
  2. http://www.itzgeek.net>> https://www.itzgeek.net

Seperti yang Anda lihat, pengalihan pertama tidak tercapai ke situs web versi HTTPS www. Jadi, Anda mungkin perlu mengikuti bagian di bawah ini untuk menyiapkannya.

Arahkan permintaan HTTP non-www ke www HTTPS dengan Nginx (opsional)

Anda mungkin ingin mengonfigurasi server Nginx untuk mengalihkan lalu lintas dari situs HTTP non-www ke situs HTTPS WWW, yaitu http://itzgeek.net>> https://www.itzgeek.net .

sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

Tambahkan pengalihan yang disorot di bagian SSL.

    listen 443 ssl; # managed by Certbot
 .    .    .
 .    .    .
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    if ($host = itzgeek.net) {
        return 301 https://www.itzgeek.net$request_uri;
    }

Kemudian, restart layanan Nginx.

sudo systemctl restart nginx

Verifikasi Let's Encrypt Certificate

Anda dapat memverifikasi sertifikat Let's Encrypt dengan mengunjungi situs web Anda.

http://situs-http-Anda

ATAU

https://your-https-web-site

Anda harus mendapatkan versi HTTPS situs Anda sekarang.

Uji Sertifikat SSL

Uji sertifikat SSL Let's Encrypt Anda untuk masalah apa pun dan peringkat keamanannya dengan membuka URL di bawah ini.

https://www.ssllabs.com/ssltest/analyze.html?d=www.itzgeek.net

Perbarui Sertifikat Let's Encrypt

Sertifikat Let's Encrypt memiliki validitas 90 hari, dan sangat disarankan untuk memperbarui sertifikat sebelum kedaluwarsa. Berkat layanan systemd, yang berjalan dua kali sehari dan secara otomatis memperbarui sertifikat yang akan kedaluwarsa.

Namun, saya sarankan Anda menjalankan perintah di bawah ini untuk mensimulasikan pembaruan otomatis sertifikat Anda.

sudo certbot renew --dry-run

Keluaran:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/www.itzgeek.net.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for www.itzgeek.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded: 
  /etc/letsencrypt/live/www.itzgeek.net/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Jika output mengonfirmasi bahwa pembaruan berfungsi dengan benar, pembaruan otomatis akan terjadi seperti yang diharapkan.

Kesimpulan

Itu saja. Saya harap Anda mempelajari cara Menginstal Let's Encrypt SSL Certificate untuk Nginx di Debian 11. Bagikan tanggapan Anda di bagian komentar.


Debian
  1. Cara Menginstal Nginx di Debian 9

  2. Cara Menginstal Let's Encrypt SSL di Ubuntu 18.04 dengan Nginx

  3. Cara Menginstal Microweber di Debian 9

  1. Cara Memasang Let's Encrypt SSL untuk NGINX di Rocky Linux 8

  2. Cara Menginstal Drupal 9 dengan Nginx dan Mengenkripsi SSL di Debian 10

  3. Cara Menginstal Nginx di Debian 11

  1. Cara Mengatur Let's Encrypt SSL Certificate dengan Nginx di Debian 10 / Debian 9

  2. Cara Instal WordPress dengan Apache dan Mari Enkripsi SSL di Debian 11

  3. Cara Menginstal Let's Encrypt SSL di Apache di Debian 11