Onion-Location, bir onion sitesini kullanıcılara duyurmanın kolay bir yoludur. Bir web sunucusunu Onion-Location üst bilgisini gösterecek şekilde yapılandırabilir ya da web sitesine bir <meta> HTML özniteliği ekleyebilirsiniz.

Üst bilginin geçerli olabilmesi için şu koşullar karşılanmalıdır:

  • Onion-Location değeri http: ya da https: ile başlayan ve .onion ile biten geçerli bir adres olmalıdır.
  • Onion-Location üst bilgisinin tanımlandığı web sayfası HTTPS üzerinden sunulmalıdır.
  • Onion-Location üst bilgisinin tanımlandığı web sayfası bir onion sitesi olmamalıdır.

Gösterilen web sunucu yönetimi komutları Debian benzeri işletim sistemleri için olduğundan, diğer sistemlerden farklı olabilir. Web sunucunuzun ve işletim sisteminizin belgelerini gözden geçirin.

Apache

Bu başlığı Apache 2.2 ve üzeri sürümlerde yapılandırmak için, headers ve rewrite modüllerini etkinleştirmeniz ve web sitesinin sanal sunucu dosyasını düzenlemeniz gerekir.

1. Adım Headers ve rewrite modüllerini etkinleştirip Apache2 sunucusunu yeniden yükleyin

 $ sudo a2enmod headers rewrite

 $ sudo systemctl reload apache2

Bir sorun çıktığı hakkında bir hata iletisi görürseniz, sorunun ne olduğunu anlayana kadar sonraki adıma geçemezsiniz.

2. Adım Sanal sunucu yapılandırma dosyasına Onion-Location üst bilgisini ekleyin

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

onion-adresiniz.onion yerine yönlendirilmesini istediğiniz Onion Hizmeti adresini ve {REQUEST_URI} yerine "/index.html" gibi istenilen adresin yol bölümünü yazın.

Sanal sunucu örneği:

     <VirtualHost *:443>
       ServerName 
       DocumentRoot /klasor/yolu/htdocs

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

       SSLEngine on
       SSLCertificateFile "/yol/adresi/www.orneksite.com.cert"
       SSLCertificateKeyFile "/yol/adresi/www.orneksite.com.key"
     </VirtualHost>

3. Adım Apache sunucusunu yeniden yükleyin

Yapılandırma değişikliklerinin geçerli olması için apache2 hizmetini yeniden yükleyin:

 $ sudo systemctl reload apache2 

Bir sorun çıktığı hakkında bir hata iletisi görürseniz, sorunun ne olduğunu anlayana kadar sonraki adıma geçemezsiniz.

4. Adım Onion-Location özelliğini kontrol edin

Onion-Location özelliğinin çalıştığından emin olmak için web sitesinin HTTP üst bilgilerini çekin. Örnek:

 $ wget --server-response --spider web-siteniz.tld

onion-location kaydına ve Onion Hizmeti adresine bakın. Ya da web sitesini Tor Browser ile açıp adres çubuğunda mor yuvarlak görünüyor mu bakın.

Nginx

Onion-Location üst bilgisini yapılandırmak için , hizmet işletmecisi öncelikle bir Onion hizmeti yapılandırmalıdır.

1. Adım torrc dosyasında şu ayarları yaparak bir Onion hizmeti oluşturun:

HiddenServiceDir /var/lib/tor/hs-web-sitem/
HiddenServiceVersion 3
HiddenServicePort 80 unix:/var/run/tor-hs-web-sitem.sock

2. Adım Web sitesi yapılandırma dosyasını düzenleyin

/etc/nginx/conf.d/<your-website>.conf dosyasına Onion-Location üst bilgisini ve Onion Hizmeti adresini ekleyin. Örnek:

    add_header Onion-Location http://<your-onion-address>.onion$request_uri;

Onion-Location eklenmiş bir yapılandırma dosyası şunun gibi görünür:

server {
    listen 80;
    listen [::]:80;

    server_name ;

    location / {
       return 301 https://$host$request_uri;
    }

}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name ;

    # managed by Certbot - https://certbot.eff.org/
    ssl_certificate /etc/letsencrypt/live/<hostname>/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/<hostname>/privkey.pem;

    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header Onion-Location http://<your-onion-address>.onion$request_uri;

    # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    access_log /var/log/nginx/<hostname>-access.log;

    index index.html;
    root /klasor/yolu/htdocs;

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

server {
        listen unix:/var/run/tor-hs-my-website.sock;

        server_name <your-onion-address>.onion;

        access_log /var/log/nginx/hs-my-website.log;

        index index.html;
        root /klasor/yolu/htdocs;
}

3. Adım Web sitesi yapılandırmasını kontrol edin

 $ sudo nginx -t

Web sunucusu yeni söz diziminin çalıştığını doğrulamalıdır:

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

4. Adım Nginx sunucusunu yeniden başlatın

 $ sudo nginx -s reload

Bir sorun çıktığı hakkında bir hata iletisi görürseniz, sorunun ne olduğunu anlayana kadar sonraki adıma geçemezsiniz.

5. Adım Onion-Location özelliğini kontrol etmek

Onion-Location özelliğinin çalıştığından emin olmak için web sitesinin HTTP üst bilgilerini çekin. Örnek:

 $ wget --server-response --spider web-siteniz.tld

onion-location kaydına ve Onion Hizmeti adresine bakın. Ya da web sitesini Tor Browser ile açıp adres çubuğunda mor yuvarlak görünüyor mu bakın.

Caddy

Caddy varsayılan olarak otomatik HTTPS özelliği sağlar. TLS sertifikanızı kullanarak sizin için HTTP > HTTPS yönlendirmesi yapar. Caddy 2 kullanıyorsanız, Onion-Location üst bilgisini eklemek için Caddyfile dosyasına şu satırı ekleyin:

header Onion-Location http://<your-onion-address>.onion{path}

Web siteniz durağan yapıdaysa ve onion adresi $TOR_HOSTNAME ortam değişkeni içinde bulunuyorsa, Caddyfile dosyanız şöyle görünür:

web-siteniz.tld

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

Sınamak: Şununla sınayın:

 $ wget --server-response --spider web-siteniz.tld

onion-location kaydına ve Onion Hizmeti adresine bakın. Ya da web sitesini Tor Browser ile açıp adres çubuğunda mor yuvarlak görünüyor mu bakın.

Bir HTML <meta> özniteliği kullanarak

Eşdeğer Onion-Location davranışı için, bir HTML <meta> http-equiv attribute içinde tanımlayabilirsiniz. Yeni bir HTTP üst bilgisi eklemek yerine sunulan HTML içeriğini değiştirerek bir Onion-Location tanımlamayı yeğleyen (ya da gerek duyan) web sitelerinde bu şekilde kullanılabilir. Onion-Location üst bilgisi, bir web sayfasındaki HTML head bölümüne <meta http-equiv="onion-location" content="http://<your-onion-service-address>.onion" /> eklenmesine eşdeğerdir. `` yerine yönlendirmek istediğiniz Onion Hizmeti adresini yazın.

Sınırlamalar

HTML, istenilen adresi okuyamadı ve devingen olarak http-equiv <meta> kod imine ekleyemedi. Bu nedenle ziyaretçiler, hangi alt sayfada olduklarına bakılmaksızın, her zaman meta kod iminin içerik bölümünde belirtilen .onion adresine yönlendirilir.

Bu nedenle olabiliyorsa yukarıdaki yöntemlerden birini kullanmanızı öneririz.

Diğer bilgiler

Onion-Location teknik özellikleri belgesini okuyun.