[ Apache ] Solusi Error “421 Misdirected Request”

Focusnic - [ Apache ] Solusi Error “421 Misdirected Request”

Masalah ini cukup membingungkan karena sebelumnya situs dapat diakses dengan normal. Panduan ini akan menjelaskan penyebab utama, serta memberikan langkah-langkah perbaikan permanen yang direkomendasikan.

Tim Apache telah merilis perbaikan untuk CVE yang memengaruhi fungsionalitas Apache + nginx: Tidak mengizinkan permintaan proses Apache dari nginx tanpa server name (secara default, nginx tidak meneruskan server name melalui SNI saat membuat koneksi dengan reverse proxy).

Berikut kutipan dari Apache CVE-2024-42516

Penyebab Error

Error ini disebabkan oleh perubahan perilaku Apache versi terbaru, terutama saat menggunakan protokol HTTP/2. Apache kini menjadi lebih ketat dalam menangani koneksi HTTP/2 ke virtual hosts (vhosts).

Secara teknis, error 421 muncul jika permintaan HTTP/2 ditujukan ke vhost yang tidak sesuai dengan nama server dalam header TLS (SNI). Jika Apache tidak menemukan nama host yang cocok saat melakukan handshake TLS, maka ia akan mengembalikan error 421.

  • Website menampilkan error 421 Misdirected Request
  • Hanya terjadi pada website dengan sertifikat SSL yang dibagikan (shared) atau subdomain tanpa sertifikat tersendiri
  • Situs bekerja normal jika diakses melalui HTTP biasa atau jika HTTP/2 dinonaktifkan

Solusi untuk NGINX Reverse Proxy Apache

Tambahkan parameter berikut pada NGINX Virtualhost

Jika Menggunakan cPanel:

Cara ini hanya untuk instalasi cPanel yang menggunakan NGINX dari paket ea-nginx dan cPanel secara resmi sudah mengeluarkan update terbaru untuk errror 421 Missdirected:

Jalankan perintah berikut untuk update cPanel:

Update AlmaLinux:

Update Ubuntu:

Sumber:https://support.cpanel.net/hc/en-us/articles/33553346450455-Websites-show-421-Misdirected-Request-error-while-using-EA-Nginx-or-other-proxies

Jika menggunakan Plesk:

  1. Masuk ke panel Plesk Anda.
  2. Buka Tools & Settings di menu sebelah kiri.
  3. Di bawah grup “General Settings”, klik Apache & Nginx Settings.
  4. Gulir ke bawah untuk menemukan kotak teks berlabel Additional Nginx directives.
  5. Paste dua baris berikut ke dalam kotak itu:
    proxy_ssl_server_name on;
    proxy_ssl_name $host;
  6. Klik OK atau Apply. Plesk akan secara otomatis menyimpan konfigurasi dan restart Nginx. Situs web Anda sekarang seharusnya sudah kembali online.

Sumber: https://support.plesk.com/hc/en-us/articles/33500191748887-Websites-hosted-in-Plesk-are-not-accessible-after-a-recent-Apache-update-421-Misdirected-Request

Jika menggunakan HestiaCP:

Anda dapat menjalankan perintah berikut untuk melakukan perubahan secara otomatis:

Untuk email domain:

Sumber: https://forum.hestiacp.com/t/nginx-apache-ssl-421-misdirected-request/19502/4

Table of Contents