Moin
Vorab folgende Annahme:
Dein vServer hat:
IPv4: 1.1.1.1
IPv6: ab:cd (nur gekürzt für das Beispiel
)
Zuhause:
IPv4: Irrelevant
IPv6: ef:gh (IPv6 des Zielservers bei dir zuhause. Jedes Device sollte eine eigene IPv6 haben)
Du brauchst:
Einen vServer mit Dual-Stack und installiertem Linux (für mein kurzes How-To mit Debian oder Ubuntu Server). Am besten ohne Spielereien wie Plesk.
Auf dem vServer brauchst du folgende Softwarepakete:
- Screen
- Socat
- nano, vi, einen beliebigen Texteditor unter Linux
Nun wird die Datei
/etc/rc.local bearbeitet:
Dort fügen wir, exemplarisch, folgende Zeile am Ende ein:
screen -dmS
BeliebigerNameFuerScreenSession1 socat TCP4-LISTEN:443,fork,su=nobodyTCP6:[ef:gh]:443
Wie zu sehen ist, wird explizit Port 443 eingetragen. Dies muss für jeden einzelnen Port separat gemacht werden.
Bei
BeliebigerNameFuerScreenSession1 kannst du dir was beliebiges eintragen. Dies ist die Sessionbezeichnung von Screen. Diese muss unique sein.
Bei Port 80 auf das gleiche Ziel:
screen -dmS
BeliebigerNameFuerScreenSession2 socat TCP4-LISTEN:80,fork,su=nobodyTCP6:[ef:gh]:80
Wenn du lediglich HTTPs willst, kann ich dir empfehlen, beide Zeilen von oben zu verwenden, also für Port 443 und 80, und sofern du einen Webserver wie z.B. Apache @home nutzt, dort einen Redirect von HTTP auf HTTPs einzurichten.
Im DNS trägst du nun für test.net die IPv4 des vServers und die IPv6 deines Webservers Zuhause ein.
Das führt dazu:
Hat dein Client IPv4 und IPv6 zur Verfügung: IPv6 wird verwendet
Hat dein Client nur IPv4: IPv4 wird verwendet
Daher brauchst du keine verschiedenen (Sub) Domains.
Das der Dienst HTTPs macht, bestimmst du über die Adresszeile deines Browsers
Sofern HTTPs nicht von Port 443 abweicht, reicht
https://test.net zur Signalisierung.
Über den oben angesprochenen Redirect reicht auch test.net
Wird vom Browser dabei
http://test.net aufgerufen, wirst du zu
https://test.net weitergeleitet.
Das Zertifikat brauchst du schlussendlich bei jedem Webserver. Da kein Webserver auf dem vServer verwendet wird, sondern Socat, welches nur TCP/UDP Datenpakete weiterleitet, benötigen wir dort kein Zertifikat.
Ich hoffe das ist so verständlich für dich. Ansonsten, fühl dich frei und zitiere den Part, wo es Fragen gibt
PS: Das ganze sieht mittlerweile bei mir auch ganz anders aus. Ich habe auf einem Rootserver VMware mit VMs laufen, darauf sitzt u.A. eine Firewall (PFSense), welche zu mir nach Hause einen IPSec VPN-Tunnel aufbaut. Darüber baue ich die Verbindung auf.
PPS:
Den Redirect von HTTP auf HTTPs löst du in Apache2, indem du folgenden Code am Anfang deiner Virtual-Hosts Datei einfügst:
<VirtualHost *:80>
ServerName test.net
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
Bitte dran denken, dass du dafür Mod_Rewrite installieren/aktivieren muss
Siehe:
https://wiki.ubuntuusers.de/Apache/mod_rewrite/