Onion-Location طريقة سهلة للإعلان عن موقع onion للمستخدمين. يمكنك إما تكوين خادم ويب لإظهار رأس Onion-Location أو إضافة سمة تعريف HTML في موقع الويب.

لكي يكون العنوان صالحًا ، يجب استيفاء الشروط التالية:

  • يجب أن تكون قيمة Onion-Location عنوان URL صالحًا مع بروتوكول http: أو https: واسم مضيف .onion.
  • يجب تقديم صفحة الويب التي تحدد عنوان Onion-Location عبر HTTPS.
  • يجب ألا تكون صفحة الويب التي تحدد عنوان Onion-Location عبارة عن موقع onion.

في هذه الصفحة ، تعتمد أوامر إدارة خادم الويب على أنظمة تشغيل تشبه دبيان وقد تختلف عن الأنظمة الأخرى. تحقق من خادم الويب ووثائق نظام التشغيل.

اباتشي

لتكوين هذا الرأس في Apache 2.2 أو أعلى ، ستحتاج إلى تمكين وحدتي headers و Rewrite وتحرير ملف Virtual Host لموقع الويب.

الخطوة 1. مكّن العناوين وأعد كتابة الوحدات وأعد تحميل Apache2

 $ sudo a2enmod headers rewrite

 $ sudo systemctl reload apache2

إذا تلقيت رسالة خطأ ، فقد حدث خطأ ما ولا يمكنك المتابعة حتى تكتشف سبب عدم نجاح ذلك.

الخطوة 2. أضف رأس Onion-Location إلى ملف تكوين Virtual Host الخاص بك

مجموعة الرأس Onion-Location "http: //your-onion-address.onion٪ {REQUEST_URI} s"

حيث يكون your-onion-address.onion هو عنوان خدمة onion الذي تريد إعادة توجيهه و {REQUEST_URI} هو مكون المسار لعنوان URI المطلوب ، مثل "/index.html".

مثال على المضيف الافتراضي:

     <VirtualHost *:443>
       اسم الخادم <your-website.tld>
       جذر الوثيقة / المسار / إلى / htdocs

       مجموعة الرأس Onion-Location "http: //your-onion-address.onion٪ {REQUEST_URI} s"

       SSLEngine on
       ملف شهادة SSLC "/path/to/www.example.com.cert"
       SSLCertificateKeyFile "/path/to/www.example.com.key"
     </VirtualHost>

الخطوة 3. إعادة تحميل اباتشي

أعد تحميل خدمة اباتشي 2 ، حتى تسري تغييرات التكوين:

 $ sudo systemctl reload apache2 

إذا تلقيت رسالة خطأ ، فقد حدث خطأ ما ولا يمكنك المتابعة حتى تكتشف سبب عدم نجاح ذلك.

الخطوة 4. اختبار Onion-Location الخاص بك

لاختبار ما إذا كان Onion-Location يعمل ، قم بإحضار رؤوس HTTP الخاصة بموقع الويب ، على سبيل المثال:

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

ابحث عن إدخال onion-location وعنوان خدمة onion. أو افتح موقع الويب في متصفح Tor وستظهر حبة أرجوانية في شريط العناوين.

Nginx

لتكوين رأس Onion-Location ، يجب على مشغل الخدمة أولاً تكوين خدمة Onion.

الخطوة 1. أنشئ خدمة Onion عن طريق تحديد ما يلي في 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 وعنوان خدمة onion. فمثلا:

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

يجب أن يبدو ملف التكوين باستخدام Onion-Location كما يلي:

الخادم {
    استمع 80;
    استمع  [::]:80;

    اسم الخادم <your-website.tld>;

    موقع / {
       return 301 https://$host$request_uri;
    }

}

الخادم {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    اسم الخادم <your-website.tld>;

    # يديرها 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;

    # يديرها Certbot
    تضمن/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;

    موقع / {
            try_files $uri $uri/ =404;
    }
}

الخادم {
        listen unix:/var/run/tor-hs-my-website.sock;

        اسم الخادم <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: صيغة ملف التكوين /etc/nginx/nginx.conf على ما يرام
nginx: نجح اختبار ملف التكوين /etc/nginx/nginx.conf

الخطوة 4. أعد تشغيل nginx

 $ sudo nginx -s reload

إذا تلقيت رسالة خطأ ، فقد حدث خطأ ما ولا يمكنك المتابعة حتى تكتشف سبب عدم نجاح ذلك.

الخطوة 5. اختبار Onion-Location الخاص بك

لاختبار ما إذا كان Onion-Location يعمل ، قم بإحضار رؤوس HTTP الخاصة بموقع الويب ، على سبيل المثال:

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

ابحث عن إدخال onion-location وعنوان خدمة onion. أو افتح موقع الويب في متصفح Tor وستظهر حبة أرجوانية في شريط العناوين.

العلبة

ميزات العلبة HTTPS تلقائي بشكل افتراضي ، لذا فهي توفر شهادة TLS الخاصة بك وتهتم بإعادة توجيه HTTP إلى HTTPS نيابة عنك. إذا كنت تستخدم Caddy 2 ، لتضمين رأس Onion-Location ، أضف الإعلان التالي في Caddyfile الخاص بك:

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

إذا كنت تدير موقعًا ثابتًا ولديك عنوان onion في متغير بيئة $ TOR_HOSTNAME ، فسيبدو ملف Caddyfile الخاص بك كما يلي:

موقع الويب الخاص بك.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-Location خيار تعريفه على أنه سمة HTML <meta> http-equiv. يمكن استخدام هذا من قبل مواقع الويب التي تفضل (أو تحتاج) لتعريف Onion-Location عن طريق تعديل محتوى HTML المقدم بدلاً من إضافة رأس HTTP جديد. سيكون رأس Onion-Location مكافئًا لـ<meta http-equiv="onion-location" content="http://<your-onion-service-address> ".onion" />مضافًا في عنصر رأس HTML لصفحة الويب. استبدل<your-onion-service-address.onion>بخدمة onion التي تريد إعادة توجيهها .

معلومات اكثر

اقرأ مواصفات موقع Onion.