How to Start a Blog? Panduan Membuat Blog Hanya 30 Menit

Cara Amankan Apache Menggunakan Let’s Encrypt di Ubuntu 18.04

Cara Amankan Apache Menggunakan Let’s Encrypt di Ubuntu 18.04 – Let’s Encrypt adalah otoritas sertifikat SSL yang dibuat oleh Internet Security Research Group (ISRG). Ini memberikan sertifikat SSL gratis melalui proses terotomatisasi sepenuhnya yang dirancang untuk menghilangkan pembuatan sertifikat manual, validasi, instalasi, dan update.

cara instal dan amankan apache menggunakan lets encrypt di ubuntu

Sertifikat SSL yang dikeluarkan oleh Let’s Encrypt dipercaya oleh semua browser terbaik dan populer hari ini. Dan sertifikat SSL Let’s Encrypt gratis ini di dukung oleh raksasa perusahaan teknologi seperti Google, Facebook, Mozilla dan lainnya.

Dalam tutorial ini, saya akan memberikan petunjuk langkah demi langkah tentang cara mengamankan web server Apache Anda menggunakan sertifikat SSL Let’s Encrypt menggunakan certbot tool di Ubuntu 18.04.

Persyaratan

Pastikan Anda telah memenuhi persyaratan berikut ini sebelum melanjutkan dengan tutorial Cara Amankan Apache menggunakan SSL Let’s Encrypt di Ubuntu 18.04 ini:

  • Nama domain menunjuk ke IP server publik Anda. Disini saya akan menggunakan contoh domain example.com.
  • Anda telah instal Apache dan mengatur Apache virtual host untuk domain Anda, Anda bisa membaca panduan disini.

Cara Instal Certbot

Certbot adalah alat berfitur lengkap dan mudah digunakan yang dapat mengotomatisasi tugas-tugas untuk memperoleh dan memperbarui sertifikat SSL Let’s Encrypt dan konfigurasi web server. Paket certbot sudah termasuk dalam repositori Ubuntu default.

Silahkan Update daftar paket dan instal paket certbot di Ubuntu Anda dengan mengetikkan perintah berikut:

$ sudo apt update
$ sudo apt install certbot

Generate Strong Dh (Diffie-Hellman) Group

Pertukaran kunci Diffie – Hellman (DH) adalah metode pertukaran kunci kriptografi yang aman melalui saluran komunikasi yang tidak aman. Saya akan menghasilkan set parameter DH 2048 bit baru untuk memperkuat keamanan web server saya:

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

Jika Anda mau, Anda dapat mengubah ukurannya hingga 4096 bit, tetapi dalam hal ini, pembuatannya dapat memakan waktu lebih dari 30 menit tergantung pada system entropy.

Mendapatkan Sertifikat SSL Let’s Encrypt

Untuk mendapatkan sertifikat SSL Let’s Encrypt untuk domain, kita akan menggunakan plugin Webroot yang berfungsi dengan membuat file sementara untuk memvalidasi domain yang diminta dalam direktori ${webroot-path}/.well-known/acme-challenge. Server Let’s Encrypt akan membuat permintaan HTTP ke file sementara untuk memvalidasi bahwa domain yang diminta menyelesaikan ke server tempat certbot berjalan.

Untuk membuatnya lebih sederhana, kita akan memetakan semua permintaan HTTP untuk .well-known/acme-challenge ke direktori tunggal, /var/lib/letsencrypt.

Perintah berikut akan membuat direktori dan membuatnya dapat ditulis untuk server Apache.

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

Untuk menghindari duplikasi kode, buat dua snippet konfigurasi berikut:

/etc/apache2/conf-available/letsencrypt.conf

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS

/etc/apache2/conf-available/ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off

SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

Snippet di atas menggunakan chipper yang direkomendasikan oleh Cipherli.st, yang memungkinkan OCSP Stapling, HTTP Strict Transport Security (HSTS) dan menegakkan beberapa header HTTP yang berfokus pada keamanan.

Sebelum mengaktifkan file konfigurasi, pastikan mod_ssl dan mod_headers diaktifkan dengan mengetikkan perintah:

$ sudo a2enmod ssl
$ sudo a2enmod headers

Selanjutnya, aktifkan file konfigurasi SSL dengan menjalankan perintah berikut:

$ sudo a2enconf letsencrypt
$ sudo a2enconf ssl-params

Aktifkan modul HTTP / 2, yang akan membuat situs Anda lebih cepat dan lebih kuat:

$ sudo a2enmod http2

Muat ulang konfigurasi Apache agar perubahan diterapkan:

$ sudo systemctl reload apache2

Sekarang, kita dapat menjalankan Certbot tool dengan plugin webroot dan mendapatkan file sertifikat SSL dengan mengetik:

$ sudo certbot certonly --agree-tos --email admin@example.com --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Jika sertifikat SSL berhasil diperoleh, certbot akan mencetak pesan berikut:

Output
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 2018-10-28. 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"
 - 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

Sekarang Anda sudah memiliki file sertifikat, edit konfigurasi virtual host domain Anda sebagai berikut:

/etc/apache2/sites-available/example.com.conf

 
  ServerName example.com
  ServerAlias www.example.com

  Redirect permanent / https://example.com/

  ServerName example.com
  ServerAlias www.example.com

  Protocols h2 http:/1.1

  <If "%{HTTP_HOST} == 'www.example.com'">
    Redirect permanent / https://example.com/
  

  DocumentRoot /var/www/example.com/public_html
  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

  # Other Apache Configuration

Dengan konfigurasi di atas, saya memaksa HTTPS dan mengalihkan dari versi www ke versi non-www. Anda bebas untuk menyesuaikan konfigurasi sesuai dengan kebutuhan Anda.

Muat ulang layanan Apache agar perubahan diterapkan:

$ sudo systemctl reload apache2

Anda sekarang dapat membuka situs web Anda menggunakan https://, dan Anda akan melihat ikon kunci hijau pada ujung browser Anda.

Jika Anda menguji domain Anda menggunakan SSL Labs Server Test, Anda akan mendapatkan nilai A+, seperti yang ditunjukkan gambar di bawah ini:

ssllabs test lets encrypt ubuntu

Perpanjangan otomatis Sertifikat SSL Let’s Encrypt

Sertifikat Let’s Encrypt berlaku selama 90 hari. Untuk secara otomatis memperbarui sertifikat sebelum habis masa berlakunya, paket certbot membuat cronjob yang berjalan dua kali sehari dan secara otomatis memperbarui sertifikat apa pun 30 hari sebelum berakhir.

Setelah sertifikat diperbarui, saya juga harus memuat ulang layanan Apache. Tambahkan --renew-hook "systemctl reload apache2" ke file /etc/cron.d/certbot sehingga terlihat seperti berikut:

$ 0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload apache2"

Untuk menguji proses update, Anda dapat menggunakan switch certbot --dry-run:

$ sudo certbot renew --dry-run

Jika tidak ada kesalahan, itu berarti proses update telah berhasil.

Kesimpulan

Dalam tutorial panduan ubuntu ini, Anda amankan Apache menggunakan Let’s Encrypt client certbot, untuk mengunduh sertifikat SSL untuk domain Anda. Anda juga telah membuat snippet Apache untuk menghindari duplikasi kode dan mengkonfigurasi Apache untuk menggunakan sertifikat. Di akhir tutorial, Anda juga telah menyiapkan cronjob untuk perpanjangan sertifikat otomatis.

Jika Anda ingin mempelajari lebih lanjut tentang cara menggunakan Certbot, Anda dapat mempelajarinya sendiri melalui dokumentasi resmi certbot disini.

Informasi lebih lanjut :

1. Panduan Lengkap Cara Instal Apache di Ubuntu 18.04

2. Cara Instal dan Amankan phpMyAdmin dengan Apache di Ubuntu 18.04

3. Cara Konfigurasi Apache Virtual Host di Ubuntu 18.04

4. Cara Amankan Apache Server Menggunakan Let’s Encrypt di Ubuntu 18.04

5. Cara Instal Database MySQL di Ubuntu 18.04

6. Panduan Cara Instal PHP di Ubuntu 18.04

Anda Terbantu artikel ini? Silahkan bergabung dengan centerklik di Twitter dan Google+.

10 top hosting!

Register Now: TOP 10 Hosting

Dapatkan Hosting Murah dengan Kualitas Terbaik. For Serious Blogger! View Deals

Niagahoster

Rp.26.000/Bln Free Domain, Unlimited Space & Bandwidth Get Host

IDCloudhost

Rp.30.000/Bln Free Domain, Unlimited Space & Bandwidth Get Host

Bluehost Hosting

$2.95/Month Free Domain, Unlimited Space & Bandwidth Get Host

iPage Hosting

$1.99/Month Free Domain, Unlimited Space & Bandwidth Get Host

SiteGround Hosting

$3.45/Month Free Domain, Unlimited Space & Bandwidth Get Host

Hostgator

$3.95/Month Free Domain, Unlimited Space & Bandwidth Get Host

Add a Comment

Your email address will not be published. Required fields are marked *

Must Read...!
7 Emulator iOS Terbaik untuk PC (Windows & Mac) Untuk 2020

7 Emulator iOS Terbaik untuk PC (Windows & Mac) Untuk 2020 - Tidak banyak...

Cara Instal WordPress dengan Nginx di Ubuntu 18.04

Cara Instal WordPress dengan Nginx di Ubuntu 18.04 - WordPress sampai saat ini masih...

Close