Posting ini menunjukkan kepada siswa dan pengguna baru cara mengatur Let’s Encrypt sertifikat SSL gratis di Ubuntu Linux dengan server web Apache HTTP. Let’s Encrypt adalah otoritas sertifikat gratis, otomatis, dan terbuka yang dibuat oleh Internet Security Research Group (ISRG) nirlaba.
Alih-alih membeli sertifikat SSL untuk situs web Kamu dan aplikasi lain, seseorang dapat menggunakan Let’s mengenkripsi sertifikat SSL gratis untuk mengamankan portal web dan aplikasi mereka. Let’s Encrypt sertifikat SSL berlaku selama 90 hari. Namun, Kamu dapat membuat proses otomatis untuk memperbarui secara otomatis sebelum kedaluwarsa.
Jika Kamu akan mengoperasikan situs web atau perlu mengamankan aplikasi Kamu dengan HTTPS, maka sertifikat Let’s Encrypt sangat bagus. Kamu dapat menghemat banyak uang dengan menggunakannya.
Untuk posting ini, kita akan menggunakan Let’s Encrypt free SSL certificate untuk mengamankan situs web yang diberdayakan oleh Apache. Situs web Apache Kamu akan dapat berkomunikasi melalui HTTPS.
Untuk mulai menggunakan Let’s Encrypt di Ubuntu Linux untuk mengamankan Apache, ikuti langkah-langkah di bawah ini.
Contents
Cara menginstal Certbot di Ubuntu Linux
Certbot adalah alat baris perintah yang mengotomatiskan tugas memperoleh dan memperbarui sertifikat SSL Let’s Encrypt. Ada alat lain untuk melakukan tugas yang sama, tetapi Certbot efisien dan mudah digunakan.
Untuk menginstal Certbot di Ubuntu, jalankan perintah di bawah ini.
sudo apt update sudo apt install certbot
Cara menghasilkan sertifikat Let’s Encrypt untuk Ubuntu Linux
Sekarang setelah Certbot terinstal, Kamu dapat mulai membuat sertifikat SSL Let’s Encrypt di Ubuntu Linux.
Untuk mengotomatiskan pembuatan dan pembaruan sertifikat, kita akan menggunakan plugin Webroot. Plugin ini menggunakan /.well-known/acme-challenge direktori di root server web untuk memvalidasi bahwa domain yang diminta diselesaikan ke server yang menjalankan Certbot.
Kami akan membuat Alias tantangan/tanggapan untuk memungkinkan Let’s Encrypt memvalidasi server tempat sertifikat dibuat. Untuk melakukannya, jalankan perintah di bawah ini.
Untuk melakukannya, jalankan perintah di bawah ini untuk membuat file konfigurasi bernama well-known.conf dalam /etc/apache2/conf-available direktori. Direktori ini berisi semua konfigurasi yang ingin Kamu gunakan dengan server web Apache. Semua file konfigurasi secara otomatis disertakan dalam file konfigurasi utama Apache.
sudo nano /etc/apache2/conf-available/well-known.conf
Kemudian salin dan tempel konten di bawah ini ke dalam file dan simpan.
Alias /.well-known/acme-challenge/ "/var/www/html/.well-known/acme-challenge/" <Directory "/var/www/html/"> AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS </Directory>
File konfigurasi di atas memungkinkan Let’s Encrypt untuk memvalidasi server web menggunakan plugin Webroot.
Sebelum SSL dan HTTPS, file Apache VirtualHost biasanya akan terlihat seperti di bawah ini.
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com ServerAdmin [email protected] DocumentRoot /var/www/example.com <Directory /var/www/example.com/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Cara menghasilkan grup Dh (Diffie-Hellman)
Pertukaran kunci Diffie–Hellman (DH) adalah metode pertukaran kunci kriptografi dengan aman. Di sebagian besar konfigurasi SSL, Kamu ingin membuat grup kunci Diffie-Hellman yang kuat.
Jalankan perintah di bawah ini untuk menghasilkan kunci di /etc/ssl/cert direktori di Ubuntu Linux.
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Cara mendapatkan sertifikat Let’s Encrypt di Ubuntu Linux
Pada titik ini, Kamu harus siap untuk mendapatkan sertifikat gratis dari Let’s Encrypt. Sebelum Kamu membuat sertifikat gratis, jalankan perintah di bawah ini untuk mengaktifkan modul Apache ini untuk SSL, Header, dan HTTP versi 2.
sudo a2enmod ssl sudo a2enmod headers sudo a2enmod http2
Aktifkan juga file konfigurasi yang kami buat di available-konf direktori.
sudo a2enconf well-known.conf
Setelah selesai, muat ulang Apache dengan menjalankan perintah di bawah ini.
sudo systemctl reload apache2
Sekarang Kamu siap membuat sertifikat Let’s Encrypt SSL. Jalankan perintah di bawah ini, ganti example.com dengan domain Kamu sendiri untuk menghasilkan sertifikat SSL Let’s Encrypt.
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/www/html -d example.com -d www.example.com
Pesan pembuatan sertifikat yang berhasil akan terlihat seperti di bawah ini:
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 2021-09-07. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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
Kamu sekarang dapat menggunakan sertifikat dan kunci dalam konfigurasi Apache VirtualHost Kamu.
Konfigurasi baru Kamu setelah menambahkan pengaturan SSL yang disarankan akan terlihat seperti di bawah ini:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ </VirtualHost> <VirtualHost *:443> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com Protocols h2 http:/1.1 <If "%{HTTP_HOST} == 'www.example.com'"> Redirect permanent / https://example.com/ </If> ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem" SSLCipherSuite 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 SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCompression off SSLUseStapling on Header always set Strict-Transport-Security "max-age=63072000" <Directory /var/www/example.com/> Options FollowSymlinks AllowOverride All Require all granted </Directory> </VirtualHost>
Buat perubahan pada konfigurasi di atas agar sesuai dengan lingkungan Kamu. Namun, pengaturan di atas harus berfungsi di sebagian besar lingkungan Apache.
Cara Update Sertifikat Let’s Encrypt secara otomatis
Sekarang setelah sertifikat dibuat, Kamu dapat mengatur proses untuk memperbarui sertifikat secara otomatis. Secara default, itu kedaluwarsa dalam 90 hari. Menyiapkan proses sehingga Kamu tidak perlu mengingat untuk melakukan perpanjangan adalah pilihan terbaik.
Untuk memperbarui sertifikat secara otomatis sebelum kedaluwarsa, paket certbot membuat cronjob dan pengatur waktu systemd. Pengatur waktu akan secara otomatis memperbarui sertifikat 30 hari sebelum kedaluwarsa.
File crontab dibuat di lokasi di bawah ini.
cat /etc/cron.d/certbot
Jika Kamu membuat perubahan pada file, Kamu harus menyimpan dan keluar.
Kamu sekarang dapat menggunakan sertifikat dan file kunci yang dirujuk di atas dalam konfigurasi Apache Kamu untuk mengaktifkan HTTPS.
Kesimpulan
Posting ini menunjukkan cara menggunakan Let’s Encrypt free SSL certificate untuk mengamankan Apache HTTP Server. Jika Kamu menemukan kesalahan di atas atau memiliki sesuatu untuk ditambahkan, silakan gunakan formulir komentar di bawah untuk melakukannya.