Netzwerk und Erreichbarkeit

Einen Dienst per HTTPS ins Internet stellen und steuern, was er nach außen erreichen darf.

Zwei Richtungen, die man leicht verwechselt: hinein heißt, dass jemand aus dem Internet deine Anwendung aufrufen kann. Hinaus heißt, dass deine Anwendung selbst etwas Externes aufruft — eine Zahlungs-API, einen Mailversand, ein fremdes System. Beides regelst du im Portal unter Netzwerk & Exposure, und beides ist standardmäßig zu.

Dass es standardmäßig zu ist, ist Absicht. Eine Anwendung, die versehentlich offen steht, ist der häufigste Weg, auf dem Umgebungen kompromittiert werden.

Eine Anwendung erreichbar machen

  1. Lege den Namespace an und bring deine Anwendung dort zum Laufen.
  2. Öffne Netzwerk & Exposure und sieh nach, welche Hostnamen dein Konto verwenden darf.
  3. Trage die gewünschte Veröffentlichung ein.
  4. Übernimm die Werte, die das Portal dir anzeigt, unverändert in deine Manifeste.
  5. Prüfe nach der Übernahme, ob die Route tatsächlich antwortet.

Der vierte Schritt ist der, an dem es am häufigsten scheitert: Rate keine Namen. Zertifikatsaussteller, Namen von TLS-Secrets und erlaubte Hostnamen stehen im Portal, und ein plausibel klingender Wert, den du dir selbst ausgedacht hast, führt zu einer Route, die einfach nicht kommt.

Das TLS-Zertifikat richtet die Plattform ein. Du musst dich weder um die Ausstellung noch um die Verlängerung kümmern.

Eigene Domain

Für eine eigene Domain muss nachgewiesen werden, dass sie dir gehört. Das Portal zeigt dir die DNS-Einträge, die du bei deinem Domain-Anbieter setzen musst, und danach den Prüfstatus.

Warte diesen Status ab, bevor du den Hostnamen jemandem zusagst. Ein gesetzter DNS-Eintrag allein heißt noch nicht, dass die Route bereit ist — und _acme-challenge-Werte solltest du weder erfinden noch von anderswo kopieren.

Was deine Anwendung nach außen darf

Ausgehende Verbindungen sind auf die Ziele beschränkt, die für dein Konto freigegeben sind. Braucht deine Anwendung ein Ziel, das nicht dabei ist, frag danach und nenne den konkreten Host und den Grund.

Widerstehe der Versuchung, pauschal alles zu erlauben. Die Netzwerkregeln sind einer der wenigen Mechanismen, die noch greifen, wenn in deiner Anwendung etwas schiefgeht — eine kompromittierte Abhängigkeit, die nirgendwohin telefonieren kann, richtet deutlich weniger an.

Wenn es nicht funktioniert

Was du siehstWo du zuerst nachsiehst
404Stimmt der Hostname, und zeigt die Route auf deinen Dienst?
503Läuft dahinter überhaupt etwas Bereites? Meistens ist der Dienst da, aber kein Pod bereit.
Kein HTTPS, ZertifikatsfehlerIst die Domain fertig geprüft? Vor dem Abschluss gibt es kein Zertifikat.
Ausgehende Verbindung schlägt fehlIst das Ziel für dein Konto freigegeben?