Menurut penelitian Netcraft, 95% server HTTPS rentan terhadap serangan Man-in-the-Middle. Oleh karena itu, sangat penting untuk menerapkan HSTS dengan benar. HSTS (HTTP Strict Transport Security) adalah kebijakan yang melindungi situs web dari serangan berbahaya seperti clickjacking, penurunan versi protokol, dan serangan man-in-the-middle seperti yang dijelaskan di artikel saya sebelumnya. Pada artikel ini, kita akan melihat berbagai langkah untuk Mengaktifkan HSTS di NGINX dan Apache.
Cara Mengaktifkan HSTS di Nginx
Buka file konfigurasi Nginx Anda untuk domain yang Anda perlukan untuk mengaktifkan HSTS.
Misalnya:/etc/nginx/conf.d/tg.conf
Tambahkan baris di bawah ini ke blok server HTTPS Anda:
JANGAN TAMBAHKAN HSTS ke blok HTTPadd_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;sertakan parameter SubDomains
Opsi includeSubDomains
parameter memberi tahu browser bahwa kebijakan HSTS juga berlaku untuk semua subdomain dari domain saat ini.
always
parameter memastikan bahwa header disetel untuk semua respons, termasuk respons kesalahan yang dihasilkan secara internal.
Agar HSTS dikonfigurasi untuk rentang waktu 1 tahun, atur usia maksimum ke 31536000 (dalam detik). Setidaknya harus 3 bulan untuk memenuhi persyaratan keamanan.
Mulai ulang layanan Nginx
Sebelum restart, verifikasi file konfigurasi seperti di bawah ini:
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Mulai ulang server Nginx untuk mengambil perubahan baru.
# systemctl restart nginx
Cara Mengaktifkan HSTS di Apache
Untuk mengaktifkan HSTS di Apache, kita harus memiliki mod_headers
modul terpasang. Jalankan perintah di bawah ini untuk mengetahui apakah modul sudah terpasang.
# apachectl -M | grep headers headers_module (shared)
jika Anda memilikinya, mari kita lanjutkan untuk mengonfigurasi pengaturan tajuk domain yang Anda perlukan untuk mengaktifkan HSTS. Buka file konfigurasi yang berisi VirtualHost
yang menggunakan SSL.
For eg: /etc/httpd/conf.d/tg.conf
Tambahkan konfigurasi di bawah ini di dalam VirtualHost
Anda untuk port 443 seperti di bawah ini:
<VirtualHost *:443> ...... Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" ...... </VirtualHost>
Mulai ulang layanan Apache
Sebelum restart, verifikasi file konfigurasi seperti di bawah ini:
# apachectl configtest Syntax OK
Jika sintaksnya OK, restart server Apache untuk mengambil perubahan baru.
# systemctl restart httpd ## Redhat systems # systemctl restart apache2 ## Debian systems
Itu dia! Uji server web untuk melihat apakah HSTS telah diaktifkan.
$ curl -kIs https://example.com | grep Strict Strict-Transport-Security: max-age=31536000; includeSubDomains