SSL für IPv4 über IPv6 weitergeleitete Verbindung

2

Zu dieser Frage gibt es folgende Netzwerkeinstellungen. Zu Hause befindet sich ein Cubieboard, auf dem ein Apache-Server hinter meinem Router ausgeführt wird. Problem ist, dass mein ISP mir nur eine IPv6-Adresse gibt und DS-Lite für ausgehende IPv4-Verbindungen verwendet.

Beim Versuch, eine Verbindung über IPv4 herzustellen (da IPv6 immer noch nicht verbreitet ist), habe ich meinen Stammserver mit einer statischen IP-Adresse verwendet, um die Anforderung über IPv6 an mein Cubieboard weiterzuleiten.

Ich habe meine eigene Domain registriert und auf dem Cubieboard befindet sich ein Skript zum Synchronisieren der Domain mit der sich täglich ändernden IPv6-Adresse von meinem ISP.

Auf meinem Root-Server wird ein Socat- Prozess ausgeführt, um Port X [IPv4] abzuhören und an meine Domain über Port Y [IPv6] weiterzuleiten.

Obwohl dies perfekt funktioniert und ich über IPv4 auf mein Cubieboard zugreifen kann, kann ich mit meinem Apache-Server auf dem Cubieboard kein SSL einrichten, sodass ich über diese IPv4-zu-IPv6-Verbindung mit SSL darauf zugreifen kann.

Ich besitze bereits ein SSL-Zertifikat von Let's Encrypt, das auf dem Cubieboard erstellt werden kann, da Let's Encrypt nur IPv6-Domänen unterstützt. Da diese Domain jedoch nur mit der IPv6-Adresse verbunden ist, kann ich diese nicht einfach im Browser verwenden, in dem nur IPv4 verfügbar ist.

                      socat
                      localhost:1234[v4] to
-------------------   mydomain.com:80[IPv6]    -------------------------
| cubieboard IPv6 |  <-----------------------> | root server IPv4/6    |
| apache port 80  |                            | socat Port 1234[Ipv4] |
-------------------                            -------------------------
        ^
        |
---------------------
| SSL certificate   |
| mydomain.com IPv6 |
---------------------
Christoph Korn
quelle

Antworten:

0

Ihr SSL-Setup sollte größtenteils in Ihrem Netzwerk-Setup funktionieren. Es ist TLS (der aktuelle Name von SSL) egal, ob es über IPv4 oder IPv6 ausgeführt wird oder ob es zwischen beiden übersetzt wird.

Ein Problem, unter dem Sie möglicherweise ausgeführt werden, besteht darin, dass TLS-Implementierungen den von Ihnen eingegebenen Hostnamen anhand des Zertifikats überprüfen. Wenn Sie sich also mit https: // root-server: 1234 / verbinden , erhalten Sie wahrscheinlich das Zertifikat von mydomain.com, das der Browser für ungültig hält.

Um dieses Problem zu beheben, können Sie die IPv4-Adresse Ihres Root-Servers zum DNS-Eintrag von mydomain.com hinzufügen. Auf diese Weise können Sie eine Verbindung zu https://myd-om-ain.com:1234/ herstellen , und der Hostname stimmt überein. Der Nachteil dabei ist, dass Let's Encrypt möglicherweise fehlschlägt, da es eine Verbindung zu TCP-Port 80 auf mydomain.com herstellt, der möglicherweise auf Ihrem Root-Server landet (und nicht weitergeleitet wird).

PS: Ich musste die Links aufgrund der Regeln von superuser.com verdecken. Entschuldigen Sie

Niobos
quelle