Onion-Location је једноставан начин да се рекламира онион сајт корисницима.
Можете или конфигурисати веб сервер да приказује Onion-Location заглавље или додати HTML <meta> атрибут на веб сајт.
Да би заглавље било важеће, потребно је испунити следеће услове:
- Вредност Onion-Location мора бити важећи URL са http: или https: протоколом и .onion именом хоста.
- Веб страница која дефинише Onion-Location заглавље мора бити сервирана преко HTTPS.
- Веб страница која дефинише Onion-Location заглавље не сме бити онион сајт.
На овој страници, команде за управљање веб сервером су засноване на Debian-у сличним оперативним системима и могу се разликовати од других система.
Проверите документацију вашег веб сервера и оперативног система.
Apache
Да бисте конфигурисали ово заглавље у Apache 2.2 или новијем, потребно је да омогућите headers и rewrite модуле и уредите фајл виртуелног хоста веб сајта.
Корак 1. Омогућите headers и rewrite модуле и поново учитајте Apache2
$ sudo a2enmod headers rewrite
$ sudo systemctl reload apache2
Ако добијете поруку о грешци, нешто је пошло наопако и не можете наставити док не схватите зашто ово није функционисало.
Корак 2. Додајте Onion-Location заглавље у вашу конфигурацију виртуелног хоста
Header set Onion-Location "http://your-onion-address.onion%{REQUEST_URI}s"
Где је your-onion-address.onion Онион Услуга адреса коју желите да преусмерите и {REQUEST_URI} је компонента путање траженог URI, као што је "/index.html".
Пример виртуелног хоста:
<VirtualHost *:443>
ServerName <your-website.tld>
DocumentRoot /path/to/htdocs
Header set Onion-Location "http://your-onion-address.onion%{REQUEST_URI}s"
SSLEngine on
SSLCertificateFile "/path/to/www.example.com.cert"
SSLCertificateKeyFile "/path/to/www.example.com.key"
</VirtualHost>
Корак 3. Поново учитајте Apache
Поново учитајте apache2 сервис, тако да ваше конфигурационе промене ступе на снагу:
$ sudo systemctl reload apache2
Ако добијете поруку о грешци, нешто је пошло наопако и не можете наставити док не схватите зашто ово није функционисало.
Корак 4. Тестирање вашег Onion-Location
Да бисте тестирали да ли Onion-Location ради, преузмите HTTP заглавља веб сајта, на пример:
$ wget --server-response --spider your-website.tld
Потражите onion-location унос и адресу Онион Услуге.
Или отворите веб сајт у Тор претраживачу и љубичаста пилула ће се појавити у адресној траци.
Nginx
Да би конфигурисао Onion-Location заглавље, оператор услуге треба прво да конфигурише Онион услугу.
Корак 1. Направите Онион услугу постављањем следећег у torrc:
HiddenServiceDir /var/lib/tor/hs-my-website/
HiddenServiceVersion 3
HiddenServicePort 80 unix:/var/run/tor-hs-my-website.sock
Корак 2. Уредите конфигурациони фајл веб сајта
У /etc/nginx/conf.d/<your-website>.conf додајте Onion-Location заглавље и адресу Онион Услуге.
На пример:
add_header Onion-Location http://<your-onion-address>.onion$request_uri;
Конфигурациони фајл са Onion-Location треба да изгледа овако:
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. Тестирајте конфигурацију веб сајта
$ sudo nginx -t
Веб сервер треба да потврди да нова синтакса ради:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Корак 4. Поново покрените nginx
$ sudo nginx -s reload
Ако добијете поруку о грешци, нешто је пошло наопако и не можете наставити док не схватите зашто ово није функционисало.
Корак 5. Тестирање вашег Onion-Location
Да бисте тестирали да ли Onion-Location ради, преузмите HTTP заглавља веб сајта, на пример:
$ wget --server-response --spider your-website.tld
Потражите onion-location унос и адресу Онион Услуге.
Или отворите веб сајт у Тор претраживачу и љубичаста пилула ће се појавити у адресној траци.
Caddy
Caddy подразумевано има аутоматски HTTPS, тако да обезбеђује ваш TLS сертификат и брине о преусмеравању HTTP на HTTPS за вас.
Ако користите Caddy 2, да бисте укључили Onion-Location заглавље, додајте следећу декларацију у ваш Caddyfile:
header Onion-Location http://<your-onion-address>.onion{path}
Ако покрећете статички сајт и имате онион адресу у $TOR_HOSTNAME променљивој окружења, ваш Caddyfile ће изгледати овако:
your-website.tld
header Onion-Location http://{$TOR_HOSTNAME}{path}
root * /var/www
file_server
Тестирање: Тестирајте са:
$ wget --server-response --spider your-website.tld
Потражите onion-location унос и адресу Онион Услуге.
Или, отворите веб сајт у Тор претраживачу и љубичаста пилула ће се појавити у адресној траци.
Коришћење HTML <meta> атрибута
Идентично понашање Onion-Location укључује опцију дефинисања као HTML <meta> http-equiv атрибут.
Ово могу користити веб сајтови који преферирају (или морају) да дефинишу Onion-Location модификујући сервирани HTML садржај уместо додавања новог HTTP заглавља.
Onion-Location заглавље би било еквивалентно <meta http-equiv="onion-location" content="http://<your-onion-service-address>.onion" /> додатом у HTML head елемент веб странице. Замените <your-onion-service-address.onion> са Онион Услугом коју желите да преусмерите.
Ограничења
HTML не може да прочита тражени URL и убаци га динамички у http-equiv <meta> ознаку.
Из тог разлога, посетиоци ће увек бити преусмерени на .onion URL наведен у content делу meta ознаке, без обзира на то на којој подстраници се налазе.
Стога, ако је могуће, препоручујемо коришћење једног од горе наведених метода.
Више информација
Прочитајте Onion-Location спецификацију.