Onion-Location, bir onion sitesini kullanıcılara duyurmanın kolay bir yoludur. Bir site sunucusunu Onion-Location üst bilgisini gösterecek şekilde yapılandırabilir ya da siteye 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ığı site sayfası HTTPS üzerinden sunulmalıdır.
  • Onion-Location üst bilgisinin tanımlandığı site sayfası bir onion sitesi olmamalıdır.

Gösterilen site sunucusu yönetimi komutları Debian benzeri işletim sistemleri için olduğundan, diğer sistemlerden farklı olabilir. Site 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 sitenin 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 <your-website.tld>
       DocumentRoot /path/to/htdocs

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

       SSLEngine on
       SSLCertificateFile "/path/to/www.example.com.cert"
       SSLCertificateKeyFile "/path/to/www.example.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 sitenin HTTP üst bilgilerini çekin. Örnek:

 $ wget --server-response --spider your-website.tld

onion-location kaydına ve Onion Hizmeti adresine bakın. Ya da siteyi 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, öncelikle hizmet işletmecisi 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-my-website/
HiddenServiceVersion 3
HiddenServicePort 80 unix:/var/run/tor-hs-my-website.sock

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

/etc/nginx/conf.d/<siteniz>.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 <your-website.tld>;

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

}

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

    server_name <your-website.tld>;

    # 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 /path/to/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 /path/to/htdocs;
}

3. Adım Site yapılandırmasını sınayın

 $ sudo nginx -t

Site 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 sitenin HTTP üst bilgilerini çekin. Örnek:

 $ wget --server-response --spider your-website.tld

onion-location kaydına ve Onion Hizmeti adresine bakın. Ya da siteyi 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}

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:

your-website.tld

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

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

 $ wget --server-response --spider your-website.tld

onion-location kaydına ve Onion Hizmeti adresine bakın. Ya da siteyi 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) sitelerde bu şekilde kullanılabilir. Onion-Location üst bilgisi, bir site sayfasındaki HTML head bölümüne <meta http-equiv="onion-location" content="http://<your-onion-service-address>.onion" /> eklenmesine eşdeğerdir. <your-onion-service-address.onion> 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.