|

Mengalihkan semua ke HTTPS kecuali lokasi tertentu pada Nginx

Masih dalam petualangan saya memahami Let’s Encrypt. Kasus kali ini websitenya sudah pakai HTTPS pakai sertifikat SSL COMODO, jadi migrasi akhirnya. Tapi verifikasi certbot lewat metode webroot authentication selalu berusaha mengakses port HTTP (80). Dimana semua trafiknya sudah terlanjur diredirect ke HTTPS. Otomatis gagal. 🙁

Jadi server Let’s Encrypt akan berusaha memvalidasi dengan mengakses direktori .well-known pada nama domain anda. Bisa saja kita nonaktifkan redirectnya tapi masa setiap mau renew mau dilakukan setiap 3 bulan? Percuma dong otomatisasi lewat cron. 😀

Jadi solusinya ya semuanya tetap dialihkan ke HTTPS, kecuali satu lokasi atau direktori pakai HTTP. Disini saya pakai web server Nginx.

Bagaimana caranya? Tambahkan kode redirect berikut ke dalam konfigurasi virtual hostingnya yang listen pada port 80:

location /.well-known/ {
                root /var/www/nama_domain.com;
        }

Dimana root itu adalah lokasi virtual hosting dari situsnya.

Atau alternatifnya pakai try_files:

location /.well-known {
        try_files $uri $uri/ =404;
    }

Jangan lupa, ini contohnya memang dari Let’s Encrypt. Tapi sangat bisa sekali anda modifikasi url mana yang diredirect (location) dan diarahkan kemana (kode dalam blok {}).

Pilih salah satu dan letakkan diatas kode redirect ke HTTPS. Karena akan diproses secara berurutan.

6 Comments

  1. Hallo mas Chandra,
    maaf mau tanya sedikit, ini ssl letsencrypt nya uda jalan di semua laman kecuali halaman attachment nya..
    kira2 salahnya dmn ya mas?

    trims 😀

      1. Ada konten lain yang masih pakai HTTP berarti mas. Coba dicek link file yang direferensikan pada halamannya.

      1. iya mas, uda beres. salah di settingan WordPress Address (URL) & SiteUrl blm tak ganti https, karena ada bbrp query dr template yang nge generate halaman statis. sama ada link jquery yang belum tak ganti ke https juga mas..

        btw trims respon nya mas 😀

  2. Hallo Mas, bagaimana cara menonaktifkan redirect di .htaccess, padahal sebetulnya script jg tdk ada, sehingga webnya tetap saja tidak bisa di akses publik.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *