Onion-მდებარეობა გზაა თქვენი onion-საიტის გასაცნობად მომხმარებლებისთვის. თქვენ ან უნდა გამართოთ ვებსერვერი, რომ გამოჩნდეს Onion-მდებარეობის თავსართი, ან უნდა დაამატოთ HTML მაკავშირებელი თვისებები, ვებსაიტზე.

თავსართი, რომ იყოს მართებული, შემდეგ მოთხოვნებს უნდა აკმაყოფილებდეს:

  • Onion-მდებარეობის მნიშვნელობა უნდა იყოს მართებული URL-ბმული http: ან https: ოქმითა და .onion-მისამართით.
  • ვებგვერდი, რომლითაც განისაზღვრება Onion-მდებარეობის თავსართი, უზრუნველყოფილი უნდა იყოს HTTPS-ით.
  • ვებგვერდი, რომლითაც განისაზღვრება Onion-მდებარეობის თავსართი, არ უნდა წარმოადგენდეს Onion-საიტს.

ამ გვერდზე მოცემული ბრძანებები ვებსერვერის მართვისთვის, ეყრდნობა Debian-ის მსგავს საოპერაციო სისტემებს და შესაძლოა განსხვავდებოდეს სხვა სისტემების ბრძანებებისგან. გადახედეთ თქვენი ვებსერვერისა და საოპერაციო სისტემის მასალებს.

Apache

ამ თავსართის გასამართად Apache 2.2 და ზედა ვერსიებში, საჭიროა ჩართოთ headers და rewrite მოდულები, ამასთან ჩაასწოროთ ვებსაიტის Virtual Host ფაილი.

ნაბიჯი 1. ჩართეთ თავსართები, გადაწერეთ მოდულები და გადატვირთეთ Apache2

 $ sudo a2enmod headers rewrite

 $ sudo systemctl reload apache2

თუ შეცდომა ამოაგდო, რაღაც არასწორად წარიმართა და იქამდე ვერ განაგრძობთ, სანამ არ გაარკვევთ რა არ მუშაობს.

ნაბიჯი 2. დაამატეთ Onion-მდებარეობის თავსართი თქვენი ვირტუალური ჰოსტის გამართვის ფაილში

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

სადაც your-onion-address.onion არის 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-მდებარეობა

შესამოწმებლად, მუშაობს თუ არა Onion-მდებარეობა, გამოითხოვეთ ვებსაიტის HTTP-თავსართები, მაგალითად:

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

მონახეთ onion-location ჩანაწერი და Onion-მომსახურების მისამართი. ან გახსენით ვებსაიტი Tor-ბრაუზერი და იისფერი ნიშანი გამოჩნდება მისამართების ველში.

Nginx

Onion-მდებარეობის თავსართის გასამართად, მომსახურების მმართველმა, ჯერ Onion-მომსახურება უნდა გამართოს.

ნაბიჯი 1. შექმენით Onion-მომსახურება შემდეგი პარამეტრების გამართვით ფაილში torrc:

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

Step 2. ჩაასწორეთ გამართვის ფაილი

ფაილში /etc/nginx/conf.d/<your-website>.conf დაამატეთ Onion-მომსახურების თავსართი და Onion-მომსახურების მისამართი. მაგალითად:

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

გასამართი ფაილი Onion-მდებარეობისთვის უნდა გამოიყურებოდეს ასე:

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-მდებარეობა

შესამოწმებლად, მუშაობს თუ არა Onion-მდებარეობა, გამოითხოვეთ ვებსაიტის HTTP-თავსართები, მაგალითად:

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

მონახეთ onion-location ჩანაწერი და Onion-მომსახურების მისამართი. ან გახსენით Tor-ბრაუზერი და იისფერი ნიშანი გამოჩნდება მისამართების ველში.

Caddy

Caddy-ის გააჩნია ავტომატური HTTPS ნაგულისხმევად, ანუ იგი უზრუნველყოფს თქვენს TLS-სერტიფიკატს და ზრუნავს HTTP-იდან HTTPS-სკენ გადამისამართებაზე. თუ გიყენიათ Caddy 2, რომ დაურთოთ Onion-მდებარეობის თავსართი, დაამატეთ შემდეგი განაცხადი Caddy-ფაილში:

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

თუ გაშვებული გაქვთ უცვლელი საიტი და მითითებული გაქვთ Onion-მისამართი $TOR_HOSTNAME გარემოს ცვლადად, თქვენი Caddy-ფაილი უნდა გამოიყურებოდეს ასე:

your-website.tld

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

შემოწმება: გადასამოწმებლად:

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

მონახეთ onion-location ჩანაწერი და Onion-მომსახურების მისამართი. ან გახსენით Tor-ბრაუზერი და იისფერი ნიშანი გამოჩნდება მისამართების ველში.

გამოიყენეთ HTML <meta> მახასიათებელი

მსგავსი ქცევა Onion-მდებარეობისა, მოიცავს შესაძლებლობას განისაზღვროს HTML <meta> http-equiv თვისების სახით. ეს შეიძლება გამოიყენოს ვებსაიტებმა, რომლებიც ამჯობინებს (ან საჭიროებს) განსაზღვროს Onion-მდებარეობა მომსახურე HTML-შიგთავსის გადაკეთებით, ნაცვლად ახალი HTTP-თავსართის დამატებისა. Onion-მდებარეობის თავსართი უნდა შეესაბამებოდეს <meta http-equiv="onion-location" content="http://<your-onion-service-address>.onion" /> მნიშვნელობას, დამატებულს, საიტის HTML-ის head-ელემენტში. ჩაანაცვლეთ <your-onion-service-address.onion> Onion-მომსახურებით, რომლის გადამისამართებაც გსურთ.

დამატებით ინფორმაცია

გაეცანით Onion-მდებარეობის მახასიათებლებს.