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.
- http://itzgeek.net>> https://itzgeek.net
- 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-AndaATAU
https://your-https-web-siteAnda 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.netPerbarui 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.