Onion-Site auf VPS mit Tor und nginx hosten
Erstellen Sie eine v3-Onion-Site auf Ubuntu mit Tor und nginx auf loopback. Der Leitfaden zeigt die genaue Konfiguration und wie Sie Leaks zur öffentlichen IP schließen.
Was Sie erstellen
Eine Onion-Site ist ein normaler Webserver, der nur über das Tor-Netzwerk antwortet. Installieren Sie tor, fügen Sie zwei Zeilen zu /etc/tor/torrc hinzu, lesen Sie die Adresse aus, die Tor für Sie schreibt, und binden Sie nginx anschließend an 127.0.0.1, damit auf der öffentlichen IP-Adresse nichts antwortet. Die Installation dauert zehn Minuten. Der restliche Teil dieses Leitfadens enthält die Liste möglicher Leaks, denn eine Onion-Site fällt normalerweise dadurch aus, dass ihre eigene Konfiguration direkt auf den Betreiber zurückverweist.
Tor begann als „the onion router“. Ein Onion-Service ist ein Dienst, den Sie nur über Tor erreichen können. Eine Adresse der Version 3 besteht aus 56 Zeichen, gefolgt von .onion. Diese Zeichen enthalten den öffentlichen ed25519-Schlüssel des Dienstes, eine Prüfsumme und ein Versionsbyte, die in base32 codiert sind. Adressen der Version 2 mit 16 Zeichen wurden 2021 aus dem Netzwerk entfernt. Alles, was Sie heute erzeugen, ist daher v3. Die Adresse ist der Schlüssel. Daraus ergeben sich zwei Konsequenzen. Die Verbindung wird ohne Beteiligung einer Zertifizierungsstelle Ende zu Ende verschlüsselt und authentifiziert. Wenn Sie die Schlüsseldatei verlieren, ist auch die Adresse dauerhaft verloren.
Ihr Server akzeptiert niemals eine eingehende Verbindung. Tor wählt einige Relays als Einführungspunkte aus, lädt einen signierten Descriptor auf die Verzeichnisserver hoch und trifft jeden Besucher an einem Rendezvous-Relay, das der Besucher ausgewählt hat. Jede dieser Verbindungen geht von Ihrem Server aus. Sie müssen keinen Port öffnen und keinen DNS-Eintrag veröffentlichen.
Tor aus dem Tor-Project-Repository installieren
Ubuntu liefert ein tor-Paket in universe aus. Dieses bleibt jedoch nahe an der Version, die beim Einfrieren des Releases aktuell war. Das eigene Repository des Tor Project verfolgt das aktuelle stabile Release. Das ist für die Software erforderlich, die entscheidet, ob Ihre Adresse Ihre bleibt.
sudo apt update
sudo apt install -y apt-transport-https gnupg wget
KEYURL=https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc
wget -qO- "$KEYURL" | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/nullDer Repository-Eintrag verwendet das deb822-Format. Suites muss dabei dem Ubuntu-Codenamen entsprechen. Lesen Sie ihn stattdessen aus /etc/os-release aus, anstatt ihn einzugeben. Ein falscher Codename führt zu einem Repository, das zwar korrekt aufgelöst wird, aber keine Pakete für Ihr Release enthält.
. /etc/os-release
sudo tee /etc/apt/sources.list.d/tor.sources >/dev/null <<EOF
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: $VERSION_CODENAME
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpg
EOF
sudo apt update
sudo apt install -y tor deb.torproject.org-keyringDas Paket deb.torproject.org-keyring hält den Signaturschlüssel aktuell. Dadurch führt eine Schlüsselrotation nicht dazu, dass apt update in einem Jahr ausfällt. Prüfen Sie, ob tor gestartet wurde und das Netzwerk erreicht:
tor --version
sudo journalctl -u tor@default -n 20Das Journal sollte mit Bootstrapped 100% (done): Done enden. Ein bei Bootstrapped 10% festhängendes tor hat keinen ausgehenden Pfad. Prüfen Sie daher die Netzwerk-Firewall Ihres Providers und Ihre eigenen Egress-Regeln: sudo ufw status verbose sollte allow (outgoing) als Standard anzeigen.
Ab hier sind zwei Namen wichtig. Das Paket führt tor unter dem Benutzer debian-tor aus. Die laufende Unit heißt tor@default.service, da tor.service unter Debian und Ubuntu ein Wrapper um die Instanz ist. Rufen Sie Status und Logs mit dem Instanznamen ab. So erhalten Sie immer den tatsächlichen Prozess.
Konfigurieren Sie den Onion-Service in torrc
Fügen Sie an /etc/tor/torrc zwei Zeilen an:
HiddenServiceDir /var/lib/tor/onion_site/
HiddenServicePort 80 127.0.0.1:8080HiddenServiceDir ist das Verzeichnis, in dem Tor die Schlüssel und die Adresse für diesen Service speichert. Erstellen Sie es nicht selbst. Tor legt es beim Start mit dem erforderlichen Eigentümer und den erforderlichen Berechtigungen an. Ein Verzeichnis, das Sie als root erstellt haben, verursacht den ersten Fehler in der unten stehenden Fehlerliste.
HiddenServicePort besteht aus zwei Teilen. Diese werden häufig verwechselt. Die erste Zahl ist der Port, zu dem ein Besucher innerhalb des Tunnels eine Verbindung herstellt. Daher ist 80 der erwartete Wert, und es gibt keinen Grund, ihn zu ändern. Der zweite Teil ist die lokale Adresse, an die Tor diesen Datenverkehr weiterleitet. Ein einfaches HiddenServicePort 80 leitet an 127.0.0.1:80 weiter. Wenn Sie die Adresse vollständig angeben und einen hohen Port verwenden, bleibt der Onion-VHost von allem frei, das bereits auf Port 80 lauscht.
sudo systemctl restart tor@default
sudo ls -l /var/lib/tor/onion_site/Die Auflistung sollte hostname, hs_ed25519_public_key, hs_ed25519_secret_key und ein leeres Verzeichnis authorized_clients enthalten.
Lesen Sie Ihre .onion-Adresse
sudo cat /var/lib/tor/onion_site/hostnameEine Zeile wird ausgegeben: 56 Base32-Zeichen und .onion. Diese Zeichenfolge ist die vollständige Identität der Website. Niemand weist sie zu, niemand kann sie übertragen, und niemand kann sie Ihnen wegnehmen, solange Sie die Schlüsseldatei besitzen. Kopieren Sie sie jetzt, da sie in allen folgenden Konfigurationen benötigt wird. Im restlichen Teil dieser Anleitung wird sie als <your-address>.onion geschrieben.
Bereitstellung der Website über nginx, gebunden an 127.0.0.1
sudo apt install -y nginx
sudo install -d -m 755 /srv/onionSchreiben Sie /etc/nginx/sites-available/onion:
server {
listen 127.0.0.1:8080;
server_name <your-address>.onion;
root /srv/onion;
index index.html;
server_tokens off;
etag off;
access_log off;
error_log /var/log/nginx/onion.error.log error;
}echo '<h1>hello from the onion</h1>' | sudo tee /srv/onion/index.html
sudo ln -s /etc/nginx/sites-available/onion /etc/nginx/sites-enabled/onion
sudo nginx -t
sudo systemctl reload nginxPrüfen Sie nun zwei Punkte direkt auf dem Server. Erstens muss nginx auf den Onion-Namen antworten. Das ist der exakte Host-Header, den tor sendet:
curl -s -H 'Host: <your-address>.onion' http://127.0.0.1:8080/Zweitens muss nginx dort und nirgendwo sonst antworten:
sudo ss -tlnp | grep 8080In der Adressspalte muss 127.0.0.1:8080 stehen. Wenn dort 0.0.0.0:8080 oder *:8080 steht, ist Ihre Onion-Website auch über das öffentliche Internet erreichbar. Das ist der erste Eintrag in der Leckliste. Eine listen 8080;-Zeile ohne Adresse bindet alle Interfaces. Das ist der Standardwert.
Öffnen Sie die Adresse in Tor Browser. Der erste Ladevorgang dauert einige Sekunden, während der Client Ihren Descriptor abruft und eine Rendezvous-Schaltung aufbaut.
Die Dokumentation des Tor Project empfiehlt anstelle eines Loopback-Ports einen Unix-Socket: HiddenServicePort 80 unix:/var/run/tor/onion_site.sock, wobei nginx auf diesem Pfad lauscht. Ein Socket kann von keinem anderen Host erreicht werden, selbst wenn der Server später ein zweites Interface erhält. Der Nachteil sind die Dateiberechtigungen. nginx erstellt den Socket und tor verbindet sich als debian-tor damit. Daher müssen sich die beiden Benutzer auf das Verzeichnis einigen. Loopback mit einer geprüften Ausgabe von ss ist einfacher korrekt einzurichten. Das setzt der restliche Teil dieser Anleitung voraus.
Wenn die Website auf Loopback läuft, benötigt der Server dafür überhaupt keine eingehende Firewall-Regel. Lassen Sie Port 22 für Ihren Zugriff offen und verweigern Sie den restlichen Zugriff (die sinnvollen ufw-Standardeinstellungen für einen VPS). Beachten Sie, dass eine Firewall keinen Dienst außer Kraft setzt, der an 0.0.0.0 gebunden ist. Sie filtert nur Pakete, die die Firewall erreichen. Bei Containern ist dieser Unterschied besonders wichtig, weil das Veröffentlichen eines Docker-Ports iptables-Regeln vor ufw schreibt. Dadurch macht -p 8080:80 Ihr Onion-Backend über die öffentliche IP erreichbar, während ufw den Port weiterhin als verweigert meldet. Veröffentlichen Sie Container-Ports als -p 127.0.0.1:8080:80.
Lecks, die eine Onion-Site de-anonymisieren
Tor verbirgt, wo sich der Server befindet. Tor verbirgt nicht, was der Server ausgibt. Jeder folgende Punkt wird von Ihrem eigenen Stack veröffentlicht.
Dieselbe Site antwortet auf Ihrer öffentlichen IP-Adresse
Dieser Punkt überrascht viele. Scanner indexieren kontinuierlich die HTTP-Antwort jeder routbaren Adresse. Diese Ergebnisse sind öffentlich und durchsuchbar. Wenn Sie dieselbe Seite auf Ihrer öffentlichen IP-Adresse und unter Ihrer Onion-Adresse ausliefern, reicht eine einzige Abfrage, um beide zu verknüpfen: derselbe Titel, derselbe Favicon-Hash, dasselbe ETag und dieselbe Reihenfolge der Header. Die oben genannte Zeile listen 127.0.0.1:8080; behebt das. Prüfen Sie dies von einem anderen Rechner aus, nicht vom Server:
curl -sv --max-time 5 http://<your-public-ip>:8080/Connection refused oder ein Timeout ist das korrekte Ergebnis. Jegliches HTML bedeutet, dass die Site öffentlich erreichbar ist. Wenn auf dem Rechner zusätzlich eine Clearnet-Site läuft, geben Sie diesem VHost ein eigenes Root-Verzeichnis und behalten Sie einen expliziten default_server-Block auf dem öffentlichen Listener bei. Dadurch kann ein nicht zugeordnetes Host-Header niemals auf den Onion-VHost durchfallen.
Versionsbanner
curl -sI http://127.0.0.1:8080/ | grep -i '^server'Ein Standard-nginx antwortet mit Server: nginx/1.24.0. Diese Versionszeichenfolge bildet zusammen mit der exakten Reihenfolge der anderen Header einen Fingerabdruck. Damit lässt sich Ihre Onion-Site Ihrem Clearnet-Host zuordnen. server_tokens off; reduziert dies auf Server: nginx. Der Header wird dadurch nicht entfernt. nginx verfügt dafür über keine integrierte Direktive. Wenn Sie ihn vollständig entfernen möchten, ist das Modul headers-more daher die übliche Lösung. PHP fügt X-Powered-By hinzu, bis Sie expose_php = Off setzen. etag off; gehört ebenfalls in diese Liste, weil nginx das ETag aus Änderungszeit und Größe einer Datei erstellt. Dieselben Dateien auf zwei Server kopiert daher dasselbe ETag auf beiden Servern aus.
Absolute URLs, die auf Ihre Clearnet-Domain verweisen
Ein rel="canonical"-Tag, ein Open-Graph-og:url, ein RSS-Feed, eine E-Mail zum Zurücksetzen des Passworts oder eine fest codierte Logo-URL: Jeder dieser Punkte nennt die Clearnet-Site innerhalb einer über die Onion-Adresse ausgelieferten Seite. Verwenden Sie root-relative Pfade wie /static/logo.svg. Lassen Sie die Anwendung ihre Basis-URL aus dem Request-Host statt aus einer Konstanten lesen. Weiterleitungen sind derselbe Fehler an einer anderen Stelle: return 301 https://example.com$request_uri; in einem Catch-all-Block leitet den Onion-Besucher auf Ihre echte Domain weiter. Der Location-Header liefert die Antwort direkt aus.
Ein TLS-Zertifikat, das mit der Clearnet-Site geteilt wird
Eine Onion-Adresse authentifiziert sich selbst, weil die Adresse der öffentliche Schlüssel ist. Daher ist http:// über eine Onion-Verbindung bereits Ende-zu-Ende-verschlüsselt, und Tor Browser behandelt sie als sicheren Kontext. Wenn Sie Ihr vorhandenes Zertifikat auf dem Onion-VHost installieren, veröffentlichen Sie die Verbindung zwischen beiden Sites. Jedes öffentlich vertrauenswürdige Zertifikat wird in Certificate-Transparency-Logs erfasst. Diese Logs sind öffentlich, dauerhaft und nach Namen durchsuchbar. Belassen Sie Let's-Encrypt-Zertifikate auf dem Clearnet-VHost auf dem Clearnet-VHost und lassen Sie den Onion-VHost mit einfachem HTTP laufen.
Schriftarten und Analysen von Drittanbietern
Eine Schriftart von einem CDN (Content Delivery Network) oder ein Analysescript. Der Browser des Besuchers ruft jedes dieser Elemente direkt ab. Der Drittanbieter erfährt dadurch, dass jemand Ihre Seite geladen hat, und normalerweise auch, welche Seite geladen wurde. Außerdem blockieren die strengeren Sicherheitsstufen von Tor Browser die Anfrage ohnehin, wodurch ein fehlerhaftes Layout entsteht. Hosten Sie jedes von der Seite benötigte Asset selbst.
Abweichender Host-Header
Wenn server_name nicht mit dem von Tor gesendeten Host-Header übereinstimmt, verwendet nginx den Standardserver für diese Listen-Adresse. Auf einem Rechner mit nur einem VHost bleibt dies unbemerkt, weil der einzige Serverblock zugleich der Standard ist. Fügen Sie später einen Clearnet-VHost hinzu, können Onion-Anfragen auf diesem landen, einschließlich seiner kanonischen Tags und Weiterleitungen. Führen Sie die curl -H 'Host: ...'-Prüfung nach jeder nginx-Änderung erneut aus und durchsuchen Sie das Ergebnis nach Ihrer echten Domain:
curl -s -H 'Host: <your-address>.onion' http://127.0.0.1:8080/ | grep -o 'https\?://[^"]*' | sort -uZu wissen, welcher Prozess welchen Socket besitzt, macht den größten Teil dieser Aufgabe aus (wie Ports und Listening-Sockets unter Linux funktionieren).
Was in den Logs verbleibt
Jede Anfrage kommt von 127.0.0.1. Daher hat nginx keine Besucheradresse zu protokollieren, und access_log off; kostet Sie nichts. Die darüber ausgeführte Anwendung ist eine andere Angelegenheit, weil Sie für eine Bestellung, eine E-Mail-Adresse oder die Metadaten einer hochgeladenen Datei verantwortlich sind. Auch Ihre eigenen Gewohnheiten zählen: Die Administration des Rechners über einen nicht gehärteten Login liegt außerhalb dessen, was Tor schützt. Betrachten Sie daher SSH-Härtung auf demselben VPS als Bestandteil dieses Setups.
Sichern Sie den privaten Schlüssel, denn er ist die Adresse
/var/lib/tor/onion_site/hs_ed25519_secret_key ist der Dienst. Es gibt keine Registrierungsstelle und keine Wiederherstellungsmöglichkeit. Wenn Sie ihn verlieren, ist die Adresse nicht mehr verfügbar. Kopieren Sie ihn, kann jeder, der die Kopie besitzt, unter Ihrer Adresse eigene Inhalte bereitstellen. Sie können das nicht widerrufen.
sudo systemctl stop tor@default
sudo tar -C /var/lib/tor -czf onion-keys.tgz onion_site
sudo chmod 600 onion-keys.tgz
sudo systemctl start tor@defaultVerschlüsseln Sie dieses Archiv (gpg -c onion-keys.tgz) und übertragen Sie es vom Server auf ein anderes System. Für die Wiederherstellung auf einem neuen VPS benötigen Sie das Archiv sowie die Besitzrechte, die tor erwartet:
sudo systemctl stop tor@default
sudo tar -C /var/lib/tor -xzf onion-keys.tgz
sudo chown -R debian-tor:debian-tor /var/lib/tor/onion_site
sudo chmod 700 /var/lib/tor/onion_site
sudo systemctl start tor@default
sudo cat /var/lib/tor/onion_site/hostnameDieselbe Adresse ist auf der neuen Hardware ein bis zwei Minuten verfügbar, nachdem tor den Descriptor erneut veröffentlicht hat. Das ist die vollständige Migration: keine DNS-Änderung und keine erneute Zertifikatsausstellung.
Onion-Location, wenn die Website auch im Clearnet verfügbar ist
Wenn die Onion-Adresse als Komfortfunktion und nicht als Geheimnis gedacht ist, veröffentlichen Sie sie im Clearnet-VHost:
add_header Onion-Location http://<your-address>.onion$request_uri;Der Tor Browser zeigt dann eine .onion available-Schaltfläche in der Adressleiste an und bietet den Wechsel an. Der Header wird nur berücksichtigt, wenn die Clearnet-Seite über HTTPS ausgeliefert wird und der Wert eine gültige Onion-URL ist.
Bei nginx gibt es dabei eine wichtige Besonderheit. add_header-Direktiven werden nur dann von einem location-Block übernommen, wenn dieser keine eigenen Direktiven dieses Typs enthält. Ein location-Block mit einem eigenen add_header-Eintrag verwirft Onion-Location daher stillschweigend. Wiederholen Sie die Direktive dort, oder verwalten Sie alle Response-Header an einer zentralen Stelle. Mit diesem Header verknüpfen Sie beide Websites bewusst. Das ist für ein Spiegelangebot korrekt, aber falsch für Inhalte, die absichtlich nicht miteinander verknüpft sein sollen.
Vanity-Adressen
mkp224o erzeugt so lange Schlüsselpaare, bis eines davon eine Adresse mit dem gewünschten Präfix erzeugt. Dabei handelt es sich um eine Brute-Force-Suche. Außer dem Präfix und der Wartezeit müssen Sie nichts konfigurieren.
sudo apt install -y git gcc libc6-dev libsodium-dev make autoconf
git clone https://github.com/cathugger/mkp224o
cd mkp224o
./autogen.sh
./configure --enable-amd64-51-30k
make
./mkp224o -d onionkeys blogJeder Treffer wird in onionkeys/<address>.onion/ abgelegt und enthält hostname sowie hs_ed25519_secret_key. Installieren Sie ihn, indem Sie Tor stoppen, dieses Verzeichnis über Ihr HiddenServiceDir kopieren und anschließend dieselben chown und chmod 700 wie bei der vorher beschriebenen Wiederherstellung anwenden.
Die Länge des Präfixes bestimmt den gesamten Aufwand. Die Adresse verwendet Base32. Jedes zusätzliche Zeichen vervielfacht die erwartete Anzahl der Schlüssel um den Faktor 32. Ein kurzes Präfix lässt sich auf einem Laptop erzeugen. Ein langes Präfix wird auf keinem Gerät, das Sie besitzen, fertig. Ein Vanity-Präfix verleitet Leser außerdem dazu, nur die ersten Zeichen statt der vollständigen Adresse zu erkennen. Genau auf dieser Gewohnheit basieren Phishing-Kopien von Onion-Sites.
Fehlerbilder und die dabei angezeigten Ausgaben
Keine hostname-Datei nach dem Neustart. Tor wurde nicht gestartet oder hat das Verzeichnis abgelehnt. sudo journalctl -u tor@default -n 50 nennt den Grund:
/var/lib/tor/onion_site/ is not owned by this user (debian-tor, 108) but by root (0). Perhaps you are running Tor as the wrong user?So sieht ein manuell erstelltes Verzeichnis aus. Korrigieren Sie Eigentümer und Berechtigungen, oder löschen Sie das Verzeichnis und lassen Sie es von tor erstellen.
Tor Browser zeigt Onionsite Not Found (0xF0). Der Client konnte keinen Descriptor abrufen. Aus Sicht des Netzwerks ist unter dieser Adresse daher nichts veröffentlicht. Prüfen Sie, ob tor läuft und den Bootstrap-Vorgang abgeschlossen hat. Vergleichen Sie die eingegebene Adresse Zeichen für Zeichen mit sudo cat /var/lib/tor/onion_site/hostname. Prüfen Sie anschließend die Uhrzeit. Tor benötigt eine genaue Uhrzeit, um Descriptors zu veröffentlichen und zu validieren. timedatectl sollte System clock synchronized: yes melden.
Die Adresse wird aufgelöst, aber die Seite wird nie geladen. Tor hat das Rendezvous abgeschlossen und ist anschließend am letzten Hop von tor zu nginx fehlgeschlagen. Dieser Hop ist lokal, daher bleibt das Tor-Log leer. Führen Sie auf dem Server curl -sI http://127.0.0.1:8080/ aus. Connection refused bedeutet, dass nginx nicht läuft oder an einer anderen Adresse lauscht, auf die HiddenServicePort verweist.
Die Seite wird geladen, und jeder Link führt zu Ihrer echten Domain. Die Templates enthalten absolute URLs. Führen Sie die obige grep -o 'https\?://[^"]*'-Prüfung aus und beheben Sie die ausgegebenen Probleme, bevor Sie die Adresse weitergeben.
Es funktioniert und fällt nach einem Neustart aus. Starten Sie den Server einmal absichtlich neu, bevor Sie sich auf die Website verlassen. Führen Sie anschließend sudo systemctl status tor@default und sudo systemctl status nginx aus. Ein manuell gestarteter Dienst sieht bis zum Neustart des Systems genauso aus wie ein aktivierter Dienst.
FAQ
Muss ich in meiner Firewall einen Port für einen Tor-Onion-Service öffnen?
Nein. Der tor-Daemon stellt nur ausgehende Verbindungen zu den Verzeichnisservern, seinen Einführungspunkten und den einzelnen Rendezvous-Relays her. Daher ist keine eingehende Regel erforderlich, und der Webserver selbst lauscht auf 127.0.0.1. Lassen Sie ufw für eingehenden Datenverkehr auf der Standardeinstellung deny und erlauben Sie SSH. Aufgrund derselben Eigenschaft funktioniert ein Onion-Service auch auf einem Rechner hinter NAT (Network Address Translation), der überhaupt keine öffentliche IP-Adresse besitzt.
Warum kann ich meine .onion-Adresse im Tor Browser nicht erreichen?
Arbeiten Sie sich vom Server aus nach außen vor. sudo journalctl -u tor@default -n 50 sollte Bootstrapped 100% (done): Done anzeigen. Anschließend sollte curl -sI http://127.0.0.1:8080/ auf dem Server eine Statuszeile zurückgeben. Vergleichen Sie danach die eingegebene Adresse mit der Datei hostname, da bereits ein falsches Zeichen zu einem anderen Service führt. Onionsite Not Found (0xF0) bedeutet, dass kein Descriptor für die Adresse gefunden wurde. Meist läuft tor dann nicht, oder die Systemzeit ist falsch.
Kann ich meine Onion-Site auf einen neuen Server verschieben und dieselbe Adresse behalten?
Ja. Die Adresse wird aus hs_ed25519_secret_key abgeleitet. Kopieren Sie daher die vollständige Datei HiddenServiceDir auf den neuen Rechner, setzen Sie den Eigentümer auf debian-tor und den Modus auf 700, und starten Sie tor. Die Adresse ist wieder erreichbar, sobald der Descriptor erneut veröffentlicht wurde. Ein DNS-Eintrag muss nicht aktualisiert werden. Wenn Sie diese Datei verlieren, kann die Adresse nicht wiederhergestellt werden. Sichern Sie sie daher ab dem Tag ihrer Erstellung verschlüsselt außerhalb des Servers.
Benötigt eine Onion-Site ein HTTPS-Zertifikat?
Nein. Die 56 Zeichen lange Adresse ist der öffentliche Schlüssel des Services. Die Verbindung ist daher bereits Ende zu Ende verschlüsselt und authentifiziert. Tor Browser behandelt http:// unter einem .onion-Namen als sicheren Kontext. Die Wiederverwendung Ihres Clearnet-Zertifikats für den Onion-VHost ist schlechter, als gar nichts zu tun, da Certificate-Transparency-Logs öffentlich sind und dauerhaft festhalten, welche Namen ein Zertifikat gemeinsam verwenden. Der einzige Grund, ein Zertifikat für einen .onion-Namen zu kaufen, ist die Bestätigung der Marke durch eine CA, die solche Zertifikate ausstellt. Diese Zuordnung ist absichtlich öffentlich.