Cara Mengalihkan HTTP ke HTTPS di Apache


HTTP (Hyper Text Transfer Protocol) adalah protokol populer dan mendasar untuk komunikasi data di World Wide Web (WWW ); biasanya antara browser web dan server yang menyimpan file web. Sedangkan HTTPS adalah versi HTTP yang aman, dengan 'S' di bagian akhir berarti 'Aman'.

Dengan menggunakan HTTPS, semua data antara browser Anda dan server web dienkripsi sehingga aman. Tutorial ini akan menunjukkan cara mengalihkan HTTP ke HTTPS di server HTTP Apache di Linux.

Sebelum Anda dapat menyiapkan HTTP Apache untuk mengalihkan HTTPS untuk domain Anda, pastikan Anda telah memasang sertifikat SSL dan mod_rewrite diaktifkan di Apache. Untuk informasi lebih lanjut tentang cara mengatur SSL di Apache, lihat panduan berikut.

  1. Cara Membuat Sertifikat dan Kunci SSL yang Ditandatangani Sendiri untuk Apache
  2. Cara Install Let’s Encrypt SSL Certificate di CentOS/RHEL 7
  3. Cara Memasang Mari Enkripsi Sertifikat SSL di Debian/Ubuntu

Redirect HTTP ke HTTPS di Apache Menggunakan File .htaccess

Untuk metode ini, pastikan mod_rewrite diaktifkan, jika tidak, aktifkan seperti ini di sistem Ubuntu/Debian.

sudo a2enmod rewrite	[Ubuntu/Debian]

Untuk pengguna CentOS/RHEL, pastikan Anda memiliki baris berikut di httpd.conf (dukungan mod_rewrite – diaktifkan secara default).

LoadModule rewrite_module modules/mod_rewrite.so

Sekarang Anda hanya perlu mengedit atau membuat file .htaccess di direktori root domain Anda dan menambahkan baris ini untuk mengalihkan http ke https.

RewriteEngine On 
RewriteCond %{HTTPS}  !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

Sekarang, ketika pengunjung mengetik http://www.domainanda.com server akan secara otomatis mengalihkan HTTP ke HTTPS https://www.domainanda.com.

Alihkan HTTP ke HTTPS di Apache Virtual Host

Selain itu, untuk memaksa semua lalu lintas web menggunakan HTTPS, Anda juga dapat mengonfigurasi file host virtual Anda. Biasanya, ada dua bagian penting dari konfigurasi host virtual jika sertifikat SSL diaktifkan; yang pertama berisi konfigurasi untuk port tidak aman 80.

Yang kedua adalah untuk port aman 443. Untuk mengalihkan HTTP ke HTTPS pada semua halaman situs web Anda, pertama-tama buka file host virtual yang sesuai. Kemudian modifikasi dengan menambahkan konfigurasi di bawah ini.

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName www.yourdomain.com
   Redirect / https://www.yourdomain.com
</VirtualHost>

<VirtualHost _default_:443>
   ServerName www.yourdomain.com
   DocumentRoot /usr/local/apache2/htdocs
   SSLEngine On
etc...
</VirtualHost>

Simpan dan tutup file, lalu restart server HTTP seperti ini.

sudo systemctl restart apache2     [Ubuntu/Debian]
sudo systemctl restart httpd	     [RHEL/CentOS]

Sedangkan merupakan solusi yang paling direkomendasikan karena lebih sederhana dan aman.

Anda mungkin ingin membaca bermacam-macam artikel pengerasan keamanan server HTTP Apache yang berguna ini:

  1. 25 Trik Apache '.htaccess' yang Berguna untuk Mengamankan dan Menyesuaikan Situs Web
  2. Cara Melindungi Direktori Web dengan Kata Sandi di Apache Menggunakan File .htaccess
  3. Cara Menyembunyikan Nomor Versi Apache dan Info Sensitif Lainnya
  4. Lindungi Apache Terhadap Serangan Brute Force atau DDoS Menggunakan Mod_Security dan Mod_evasive

Itu saja! Untuk berbagi pemikiran mengenai panduan ini, gunakan formulir umpan balik di bawah. Dan ingatlah untuk selalu terhubung dengan linux-console.net.