Menghubungkan Situs Clearnet ke .onion dengan Onion-Location

Cara memberi tahu pengunjung Tor Browser bahwa situs Anda punya versi .onion, cukup dengan satu header HTTP di nginx, Apache, atau Caddy.

Jean

31. Oktober 2026October 31, 2026 · 7 Min. Lesezeit7 min read

Menghubungkan Situs Clearnet ke .onion dengan Onion-Location

Punya situs biasa di internet, dan juga punya versi .onion-nya. Tapi orang yang membuka situs Anda lewat Tor Browser tidak pernah tahu kalau versi .onion-nya tersedia. Mereka tetap memakai jalur biasa, padahal bisa masuk lewat jalur yang lebih privat.

Di sinilah Onion-Location berperan.

Onion-Location adalah cara sederhana untuk memberi tahu pengunjung bahwa situs Anda punya versi .onion. Kalau fitur ini aktif, Tor Browser akan menampilkan tombol kecil di address bar. Satu klik, pengunjung langsung dipindahkan ke alamat .onion Anda.


Bagaimana Cara Kerjanya#

Onion-Location bukan pengalihan otomatis. Ia hanya memberi petunjuk. Tor Browser yang memutuskan menampilkan tawaran tersebut, dan pengunjung yang memutuskan mau pindah atau tidak.

Ada dua cara memasangnya:

Keduanya menghasilkan perilaku yang sama. Bedanya, header HTTP bisa mengikuti halaman yang sedang dibuka, sedangkan meta tag tidak.

Syarat yang Harus Dipenuhi#

Sebelum memasang, pastikan tiga syarat berikut terpenuhi. Kalau salah satu dilewat, Tor Browser akan mengabaikan petunjuk Anda.

Syarat HTTPS ini punya alasan yang masuk akal. Pada HTTP biasa, tidak ada jaminan keaslian isi respons. Header bisa diubah di tengah jalur oleh pihak yang menguasai jaringan, dan kalau itu terjadi, pengunjung bisa diarahkan ke alamat .onion palsu yang mirip dengan milik Anda. Dengan HTTPS, isi respons terlindungi dan perubahan seperti itu bisa dideteksi. Karena itulah petunjuk dari halaman non-HTTPS tidak bisa dipercaya.

Syarat ketiga juga penting: jangan memasang Onion-Location di dalam situs onion itu sendiri. Tujuannya hanya satu arah, dari clearnet menuju onion.


Prasyarat: Onion Service Sudah Berjalan#

Onion-Location hanya memberi petunjuk. Ia tidak membuat situs onion. Jadi sebelum memasang header, pastikan Onion Service Anda sudah hidup dan bisa dibuka lewat Tor Browser.

Kalau belum, konfigurasi dasar di torrc terlihat seperti ini:

HiddenServiceDir /var/lib/tor/situs-saya/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:8080

Setelah Tor dijalankan ulang, alamat .onion Anda ada di dalam file hostname pada direktori tersebut.

Kalau ingin alamat yang mudah diingat, proses pembuatan vanity address bisa dibaca di artikel sebelumnya tentang alamat kustom .onion.


Memasang di Nginx#

Nginx adalah pilihan paling umum, dan caranya cukup satu baris.

1. Buka Konfigurasi Situs#

Edit file konfigurasi situs Anda. Lokasinya biasanya:

/etc/nginx/sites-available/default

atau

/etc/nginx/conf.d/situs-anda.conf

2. Tambahkan Header di Blok HTTPS#

Header harus berada di dalam blok server yang melayani HTTPS, bukan di blok port 80.

server {
    listen 443 ssl http2;
    server_name domain-anda.tld;

    ssl_certificate     /etc/letsencrypt/live/domain-anda.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain-anda.tld/privkey.pem;

    add_header Onion-Location http://alamatanda.onion$request_uri;

    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Perhatikan bagian $request_uri. Itu bukan hiasan. Dengan variabel tersebut, pengunjung yang sedang membuka /artikel/tor akan dipindahkan ke alamat .onion halaman yang sama, bukan selalu ke halaman depan.

Kalau dihilangkan, semua orang akan mendarat di homepage dan harus mencari sendiri halaman yang tadi dibaca.

3. Uji Konfigurasi#

Selalu uji sebelum memuat ulang. Salah ketik satu tanda kurung bisa membuat seluruh situs mati.

sudo nginx -t

Kalau hasilnya seperti ini, konfigurasi sudah benar:

nginx: configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

4. Muat Ulang Nginx#

sudo systemctl reload nginx

Pakai reload, bukan restart. Reload tidak memutus koneksi yang sedang berjalan.


Memasang di Apache#

Untuk Apache 2.2 ke atas, dibutuhkan dua modul: headers dan rewrite.

1. Aktifkan Modul#

sudo a2enmod headers rewrite
sudo systemctl reload apache2

2. Tambahkan Header di Virtual Host HTTPS#

Buka file Virtual Host untuk port 443, lalu tambahkan satu baris di dalamnya.

<VirtualHost *:443>
    ServerName domain-anda.tld
    DocumentRoot /var/www/html

    Header set Onion-Location "http://alamatanda.onion%{REQUEST_URI}s"

    SSLEngine on
    SSLCertificateFile    /path/to/fullchain.pem
    SSLCertificateKeyFile /path/to/privkey.pem
</VirtualHost>

Bagian %{REQUEST_URI}s berfungsi sama seperti $request_uri di nginx, yaitu membawa pengunjung ke halaman yang sama.

3. Muat Ulang Apache#

sudo systemctl reload apache2

Memasang di Caddy#

Caddy mengurus sertifikat HTTPS secara otomatis, jadi biasanya cukup satu baris tambahan di Caddyfile.

domain-anda.tld

header Onion-Location http://alamatanda.onion{path}
root * /var/www
file_server

Kalau alamat .onion disimpan sebagai variabel lingkungan, Caddy bisa membacanya langsung:

domain-anda.tld

header Onion-Location http://{$TOR_HOSTNAME}{path}
root * /var/www
file_server

Alternatif: Meta Tag di HTML#

Kalau Anda tidak punya akses ke konfigurasi web server, misalnya karena memakai layanan hosting berbagi, Onion-Location masih bisa dipasang lewat HTML.

Tambahkan baris berikut di dalam elemen <head>:

<meta http-equiv="onion-location" content="http://alamatanda.onion" />

Cara ini bekerja, tetapi ada keterbatasan yang perlu diketahui.

HTML tidak bisa membaca URL yang sedang dibuka. Akibatnya, semua pengunjung akan diarahkan ke alamat yang tertulis di situ, mau mereka sedang membuka halaman apa pun.

Jadi kalau situs Anda punya banyak halaman, header HTTP jauh lebih baik. Meta tag hanya cocok untuk situs satu halaman, atau sebagai jalan terakhir saat konfigurasi server benar-benar tidak bisa disentuh.


Cara Menguji Apakah Berhasil#

Ada dua cara memeriksanya, dan keduanya mudah.

1. Periksa Header dari Terminal#

Cara paling cepat untuk memastikan header benar-benar terkirim:

wget --server-response --spider https://domain-anda.tld

atau kalau lebih nyaman memakai curl:

curl -I https://domain-anda.tld

Yang dicari adalah baris seperti ini di antara header respons:

onion-location: http://alamatanda.onion/

Kalau baris itu muncul, berarti server sudah mengirimkannya. Kalau tidak muncul, berarti ada yang perlu diperiksa lagi.

2. Buka Situs di Tor Browser#

Ini uji yang sebenarnya, karena hanyalah Tor Browser yang bisa menampilkan tawarannya.

Buka situs Anda lewat Tor Browser, lalu lihat address bar. Kalau berhasil, akan muncul tombol atau pil berwarna ungu dengan tulisan Onion available. Klik tombol itu, dan Anda akan dipindahkan ke alamat .onion.

Kalau header sudah terkirim tetapi tombolnya tidak muncul, coba tutup dan buka ulang Tor Browser, atau tunggu sebentar. Tor Browser kadang butuh waktu untuk menyegarkan daftar onion service.


Hal yang Sering Membuat Gagal#

Beberapa penyebab umum, diurutkan dari yang paling sering:


Kenapa Ini Layak Dipasang#

Onion-Location terlihat seperti detail kecil. Satu header, satu baris konfigurasi.

Tapi dampaknya nyata. Pengunjung yang memang sudah memilih Tor sebagai jalur mereka tidak perlu menebak-nebak atau mencari alamat .onion Anda secara manual. Petunjuknya datang tepat di tempat mereka berada, pada saat mereka membukanya.

Yang lebih penting, ini menutup satu celah kepercayaan. Alamat .onion yang ditemukan lewat mesin pencari belum tentu asli, siapa pun bisa menyebarkan alamat palsu. Dengan Onion-Location, alamat yang ditawarkan berasal langsung dari server Anda sendiri, lewat koneksi HTTPS yang terverifikasi.

Situs Tor Project sendiri memakai cara ini. Kalau Anda membuka halaman dokumentasi mereka lewat Tor Browser, tombol ungu itu muncul, dan mengarah ke versi .onion dari halaman yang sedang dibaca.

Satu header. Pengunjung yang lebih aman, dan jalur yang lebih privat untuk siapa saja yang memilihnya.

#nginx#onion#onion-location#privacy#tor#tutorial

Written by

Comments

No comments yet. Start the conversation.

Contents

10 sections

  1. Bagaimana Cara Kerjanya
  2. Syarat yang Harus Dipenuhi
  3. Prasyarat: Onion Service Sudah Berjalan
  4. Memasang di Nginx
  5. Memasang di Apache
  6. Memasang di Caddy
  7. Alternatif: Meta Tag di HTML
  8. Cara Menguji Apakah Berhasil
  9. Hal yang Sering Membuat Gagal
  10. Kenapa Ini Layak Dipasang