Onion-Location este o modalitate ușoară de a face publicitate unui site onion pentru utilizatori.
Puteți fie să configurați un server web să afișeze un antet Onion-Location sau să adăugați un atribut HTML <meta>
pe site.
Pentru ca antetul să fie valid, trebuie îndeplinite următoarele condiții:
- Valoarea Onion-Location trebuie să fie un URL valid cu http: Sau https: protocol și un nume de gazdă .onion.
- Pagina web care definește antetul Onion-Location trebuie să fie servită prin HTTPS.
- Pagina web care definește antetul de Onion-Location nu trebuie să fie un site Onion.
Pe această pagină, comenzile de gestionare a serverului web se bazează pe sisteme de operare Debian și pot diferi de alte sisteme.
Verificați serverul web și documentația sistemului de operare.
Apache
Pentru a configura acest antet în Apache 2.2 sau mai nou, va trebui să activați modulele header
și rewrite
și să editați fișierul Virtual Host al site-ului.
Pasul 1. Activați antetele și rescrieți modulele și reîncărcați Apache2
$ sudo a2enmod headers rewrite
$ sudo systemctl reload apache2
Dacă primiți un mesaj de eroare, ceva a mers prost și nu puteți continua până când nu v-ați dat seama de ce acest lucru nu a funcționat.
Pasul 2. Adăugați antetul Onion-Location în fișierul de configurare Virtual Host
Header set Onion-Location "http://your-onion-address.onion%{REQUEST_URI}s"
Unde your-onion-address.onion
este adresa Onion Service pe care doriți să o redirecționați și {REQUEST_URI}
este componenta cale a URI-ului solicitat, cum ar fi „/index.html”.
Exemplu de gazdă virtuală:
<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>
Pasul 3. Repornește Apache
Reîncărcați serviciul apache2, astfel încât modificările configurației să intre în vigoare:
$ sudo systemctl reload apache2
Dacă primiți un mesaj de eroare, ceva a mers prost și nu puteți continua până când nu v-ați dat seama de ce acest lucru nu a funcționat.
Pasul 4. Testarea Onion-Location-ului dumnevoastră
Pentru a testa dacă Onion-Location funcționează, aduceți anteturile HTTP ale site-ului, de exemplu:
$ wget --server-response --spider your-website.tld
Căutați intrarea onion-location
și adresa de service Onion.
Sau deschideți site-ul în Tor Browser și o pastilă purpurie va apărea în bara de adrese.
Nginx
Pentru a configura un antet Onion-Location, operatorul de servicii trebuie să configureze mai întâi un serviciu Onion.
Pasul 1. Creați un serviciu onion prin setarea următoarelor în torrc
:
HiddenServiceDir /var/lib/tor/hs-my-website/
HiddenServiceVersion 3
HiddenServicePort 80 unix:/var/run/tor-hs-my-website.sock
Pasul 2. Editați fișierul de configurare a site-ului
În /etc/nginx/conf.d/<your-website>.conf
adăugați antetul Onion-Location și adresa Onion Service.
De exemplu:
add_header Onion-Location http://<your-onion-address>.onion$request_uri;
Fișierul de configurare cu Onion-Location trebuie să arate astfel:
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;
}
Pasul 3. Testați configurația site-ului web
$ sudo nginx -t
Serverul web trebuie să confirme că noua sintaxă funcționează:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Pasul 4. Reporniți nginx
$ sudo nginx -s reload
Dacă primiți un mesaj de eroare, ceva a mers prost și nu puteți continua până când nu v-ați dat seama de ce acest lucru nu a funcționat.
Pasul 5. Testarea Onion-Location-ului dumnevoastră
Pentru a testa dacă Onion-Location funcționează, aduceți anteturile HTTP ale site-ului, de exemplu:
$ wget --server-response --spider your-website.tld
Căutați intrarea onion-location
și adresa de service Onion.
Sau deschideți site-ul în Tor Browser și o pastilă purpurie va apărea în bara de adrese.
Caddy
Caddy dispune de HTTPS automat în mod implicit, astfel încât vă oferă certificat de tip TLS și are grijă de redirecționarea HTTP-to-HTTPS pentru dumneavoastră.
Dacă utilizați Caddy 2, pentru a include un antet Onion-Location, adăugați următoarea declarație în fișierul dvs. Caddyfile:
header Onion-Location http://<your-onion-address>.onion{path}
Dacă rulați un site static și aveți adresa onion într-o variabilă de mediu $TOR_HOSTNAME
, fișierul dumneavoastră Caddyfile va arăta astfel:
your-website.tld
header Onion-Location http://{$TOR_HOSTNAME}{path}
root * /var/www
file_server
Testarea: Testați-l cu:
$ wget --server-response --spider your-website.tld
Căutați intrarea onion-location
și adresa de service Onion.
Sau, deschideți site-ul web în Tor Browser și o pastilă violet va apărea în bara de adrese.
Folosind un atribut HTML <meta>
Comportamentul identic al Onion-Location include opțiunea de a-l defini ca atribut HTML <meta>
http-equiv.
This may be used by websites that prefer (or need) to define an Onion-Location by modifying the served HTML content instead of adding a new HTTP header.
Antetul Onion-Location ar fi echivalent cu un <meta http-equiv="onion-location" content="http://<your-onion-service-address>.onion" />
adăugat în elementul HTML head al paginii web. Înlocuiți <your-onion-service-address.onion>
cu Onion Service pe care doriți să-l redirecționați .
Limitări
HTML nu poate citi adresa URL solicitată și nu o poate introduce dinamic în eticheta http-equiv <meta>
.
Din acest motiv, vizitatorii sunt întotdeauna redirecționați către URL-ul .onion specificat în partea de conținut a meta tag-ului, indiferent de subpagina pe care sunt.
Prin urmare, dacă este posibil, vă recomandăm să utilizați una dintre metodele de mai sus.
Informații suplimentare
Citiți Onion-Location spec.