Ein Zertifikat für eine reine VPN-Seite: DNS-01 oder private CA?
Eine nur über VPN erreichbare Seite kann ein vertrauenswürdiges öffentliches Zertifikat über DNS-01 erhalten oder ein internes von einer privaten CA. Die Wahl hängt vom Namen und den Clients ab.
Drei Bedingungen entscheiden, wie eine nur über VPN erreichbare Website ihr Zertifikat beziehen sollte: ob Sie eine öffentliche DNS-Zone kontrollieren, ob der Hostname in öffentlichen Protokollen erscheinen darf und ob jedem Client ein privater Vertrauensanker gegeben werden kann. Der öffentliche und der private Weg erzeugen beide ein funktionierendes Schloss und beantworten unterschiedliche Fragen. Einen davon zu wählen, ohne diese Bedingungen zu klären, führt dazu, dass eine Seite ein öffentliches Zertifikat bekommt, das sie nicht wollte, oder ein internes, das die Hälfte der Clients zurückweist.
Das Zertifikat beweist den Namen; das VPN und das interne DNS liefern den Weg.
Zwei Wege zu einem vertrauenswürdigen Namen
Ein öffentlicher Aussteller mit DNS-01-Validierung beweist die Kontrolle über einen Namen über einen TXT-Eintrag in einer Zone, die Sie kontrollieren, sodass der Webdienst nie eine öffentliche HTTP-Verbindung annehmen muss. Eine private CA stellt Endzertifikate für interne Namen aus und verteilt ihren Vertrauensanker über die Geräteverwaltung, sodass kein öffentliches Protokoll den Namen erfährt. Beide sind zulässig, und die Wahl folgt aus diesen drei Bedingungen und nicht aus Bequemlichkeit. Keiner der Wege liefert die Route oder den Resolver-Eintrag, den ein Client braucht.
Ein öffentliches Zertifikat veröffentlicht den Hostnamen zudem in Zertifikatstransparenz-Protokollen. Wenn der Name selbst sensibel ist, ist diese Offenlegung eine Designentscheidung und kein Nebeneffekt, den man später entdeckt.
DNS-01, ohne den Dienst offenzulegen
Der Challenge-Eintrag ist ein TXT-Eintrag unter einem reservierten Präfix in der Zone, und der Aussteller liest ihn aus dem autoritativen DNS. Wählen Sie einen ACME-Client und eine DNS-Integration, die diesen Eintrag anlegen und entfernen können, und erteilen Sie der Aktualisierung enge Rechte: eine begrenzte API-Berechtigung für die Zone oder einen kontrollierten Host, der nur zur Validierung dient. Dem Anwendungsserver eine uneingeschränkte Registrar-Berechtigung zu geben, um ein Zertifikat zu erneuern, ist weit mehr Befugnis, als die Aufgabe verlangt. Wenn mehrere Bestellungen einen Namen teilen, halten Sie ihre TXT-Werte getrennt, damit das Aufräumen des einen keinen Wert entfernt, den ein anderes noch braucht.
Warten Sie die Verbreitung mit einer Prüfung gegen die autoritativen Server ab, statt mit einer festen Pause. Das Verbreitungsverhalten ist anbieterabhängig, und eine Pause, die heute funktioniert, ist kein Beleg für morgen.
Verwaltete Clients und bewusst private Namen
Verwaltete Geräte und bewusst private Namen passen gut zu einer internen CA. Verteilen Sie den vertrauenswürdigen Aussteller über die Geräteverwaltung und stellen Sie dann Endzertifikate für die vorgesehenen Namen aus. Prüfen Sie, welchen Speicher jeder Client tatsächlich nutzt, denn ein Import im Betriebssystem ist keine allgemeine Aussage über jeden Browser und jede Anwendung. Endzertifikat-Pinning ist eine weitere Option, wo es ausdrücklich unterstützt wird, zum Preis einer weiteren Vertrauensaktualisierung, sobald sich das Endzertifikat ändert.
Der Verteilungskanal zählt so viel wie der Schlüssel: eine Wurzel, die niemand installiert, schützt nichts.
Erneuerung gehört zum Entwurf
Welchen Weg Sie auch wählen, die Erneuerung braucht einen Verantwortlichen und ein Verfahren. Den Validierungsnachweis zu erneuern, das neue Material zu installieren und den Listener über seinen unterstützten Mechanismus neu zu laden, sind drei getrennte Schritte, und nur den ersten automatisieren die meisten ACME-Clients. Ein Zertifikat, das korrekt erneuert, aber nie geladen wird, verursacht denselben Ausfall wie ein abgelaufenes.
Das Zertifikat installiert weder die VPN-Route noch legt es den internen DNS-Eintrag an. Clients brauchen weiterhin einen Resolver, der den Namen auf die private Adresse abbildet, und eine Route dorthin. Testen Sie die Seite über den Namen von einem Client, der beides hat.
Halten Sie Aussteller, Validierungsmethode, Vertrauens-Verteilungskanal und Neulade-Mechanismus fest. Diese vier sind der Erneuerungsplan.