Lektion 2.4: Der Antwort-Cache und HTTPS-Zertifikate
Zwei Dinge, die Velocity selbst erledigt und die eine traditionelle PHP-FPM-Einrichtung anderen Werkzeugen überlässt: wiederholte anonyme Seiten aus dem eigenen Antwort-Cache beantworten und HTTPS mit eigenen Zertifikaten ausliefern. Support-Mitarbeitende begegnen beidem jede Woche („meine Änderung erscheint nicht“, „die Zertifikatswarnung“), deshalb gibt diese Lektion den Teilnehmenden die Prüfungen und die Antworten.
Auf einen Blick
| Kurs | Hosting und Betrieb |
| Modul | Modul 2: Velocity |
| Dauer | 45 Minuten (20 Präsentation, 25 Übung) |
| Niveau | Fortgeschrittene |
| Zielgruppe | Systemadministratoren und Support-Mitarbeitende im Hosting |
| Voraussetzungen | Lektion 2.3; openssl auf dem Rechner der Person |
Lernziele
Nach dieser Lektion können die Teilnehmenden:
- mit zwei Anfragen einen Treffer im Antwort-Cache zeigen und
X-CacheundAgelesen; - aufzählen, was der Antwort-Cache nie speichert, einschließlich jeder Seite für einen angemeldeten Besucher;
- den Antwort-Cache leeren und sagen, wann kein Neustart nötig ist;
- HTTPS mit einem Zertifikatspaar einschalten und das ausgelieferte Zertifikat mit
exp:velocity ssl showlesen; - den selbstsignierten Ersatz, den Austausch von Zertifikaten im laufenden Betrieb und das Risiko einer langen HSTS-Dauer erklären.
Hinweise für Trainer
So präsentieren Sie es
Quelle: Velocity-Antwort-Cache, Velocity-HTTPS-Zertifikate und Kapitel 8, Abschnitt 8.3.9.
- Was der Cache tut (4 Minuten). Dargestellte anonyme Seiten werden im Serverprozess beantwortet, bevor ein Worker
gewählt wird: kein Fork, kein PHP, keine Datenbank. Bedingte Anfragen bekommen
304; eine abgelaufene Seite wird weiter ausgeliefert, während eine Anfrage den Ersatz darstellt (StaleWhileRevalidate, 60 s). - Was er nie speichert (3 Minuten). Angemeldete Besucher werden nie daraus bedient; Anfragen mit dem
Sitzungs-Cookie oder einem
Authorization-Header; Antworten, die ein Cookie setzen oderno-storeoderprivatesagen; alles außerGET; Antworten außer 200 (ein 404 nur, wennNotFoundSecondsüber 0 liegt). - Aktualität (3 Minuten).
DefaultTtl(30 s) ist das Alter, das eine Seite haben darf, die ein Besucher nach einer Änderung sieht. Leeren mitexp:velocity cache clear; nach einer Template-Änderung ist kein Neustart nötig. Der Navigations-Cache des Browsers bewirkt, dass eine veröffentlichte Änderung erst beim zweiten Aufruf erscheinen kann. - HTTPS (6 Minuten). Mit einem Paar von PEM-Dateien:
[HTTPSSettings] Certificate,KeyundEnabled truesetzen, neu starten. Das Paar wird vor der Verwendung geprüft; ein Paar, das die Prüfung nicht besteht, wird nie gezeigt, ein selbstsigniertes Zertifikat springt ein. Eine erneuerte Datei wird innerhalb einer Minute im laufenden Betrieb ausgetauscht. Let's Encrypt und andere Quellen werden in einem Snippet inconf-available/eingerichtet; Port 80 muss den Server für die HTTP-01-Challenge erreichen. - HSTS und Sicherungen (4 Minuten). Ein Browser, der
Strict-Transport-Securitygesehen hat, verweigert einfaches HTTP für die ganze Dauer; erhöhen SieHSTSMaxAgeerst dann auf ein Jahr, wenn jeder Name dauerhaft auf HTTPS ist. Sichern Sie das Verzeichnisssl/; nur die ACME-Kontoschlüssel lassen sich nicht neu erzeugen.
Häufige Fragen
Ein Kunde sagt, angemeldete Benutzer sehen eine alte Seite. Nicht der Antwort-Cache: Angemeldete Besucher bekommen ihn nie. Sehen Sie sich den View-Cache oder den HTTP-Cache an.
Warum werden 404 standardmäßig nicht zwischengespeichert? NotFoundSeconds=0 schickt jedes 404 an PHP, sodass
404.log und das Sicherheitslog jedes sehen. Lassen Sie den Wert auf 0, wo das Sicherheitsmonitoring diese Logs liest.
Wie früh sollte ich mir wegen des Ablaufs Sorgen machen? Ein 90-Tage-Zertifikat wird erneuert, wenn noch etwa
30 Tage übrig sind; weniger als 14 verbleibende Tage bedeuten, dass die Erneuerung seit zwei Wochen fehlschlägt.
Alarmieren Sie bei daysLeft unter 14.
Leitet die mitgelieferte Konfiguration HTTP auf HTTPS weiter? velocity.ini hat keine Einstellung, die das eine auf
das andere weiterleitet; beide lauschen gleichzeitig. Machen Sie die eigenen Adressen der Website zu HTTPS-Adressen,
bevor Sie HSTS erhöhen.
Stolperfallen
- Angemeldet testen. Ein Browser mit einer Sitzung der Administration sieht nie einen Cache-Treffer. Verwenden Sie
curl. - ACME im Kurs. Let's Encrypt braucht öffentliches DNS und Port 80 aus dem Internet. Verwenden Sie im Kurs wie in der Übung ein selbst erzeugtes Paar und zeigen Sie ACME nur am Beamer.
- HSTS auf einem Schulungs-Hostnamen. Setzen Sie
HSTSMaxAgenicht über den ausgelieferten Wert bei einem Namen, den die Teilnehmenden wiederverwenden.
Praktische Übung
Verwenden Sie Ihre eigene Schulungsinstallation, ausgeliefert von Velocity auf den mitgelieferten Ports (8088 und 8080).
Fragen Sie die Startseite zweimal an, ohne sich anzumelden:
curl -sI http://127.0.0.1:8088/ | grep -iE 'x-cache|age' curl -sI http://127.0.0.1:8088/ | grep -iE 'x-cache|age'Zeigen Sie den Zustand des Caches:
php bin/php/console exp:velocity cache stats.Leeren Sie ihn:
php bin/php/console exp:velocity cache clear --apply, und wiederholen Sie dann Schritt 1 einmal.Erzeugen Sie für die Übung ein selbstsigniertes Paar in einem Verzeichnis Ihrer Installation:
mkdir -p var/training-tls openssl req -x509 -newkey rsa:2048 -nodes -days 30 -subj "/CN=training.example.invalid" \ -keyout var/training-tls/key.pem -out var/training-tls/cert.pemVerweisen Sie Velocity auf das Paar und schalten Sie HTTPS ein:
php bin/php/console exp:velocity config set --apply HTTPSSettings Certificate var/training-tls/cert.pem php bin/php/console exp:velocity config set --apply HTTPSSettings Key var/training-tls/key.pem php bin/php/console exp:velocity config set --apply HTTPSSettings Enabled true php bin/php/console exp:velocity restartLesen Sie
php bin/php/console exp:velocity statusund suchen Sie die HTTPS-Adresse.Zeigen Sie das ausgelieferte Zertifikat:
php bin/php/console exp:velocity ssl show.Fragen Sie die Website über HTTPS an und akzeptieren Sie dabei das selbst erzeugte Zertifikat:
curl -skI https://127.0.0.1:8080/ | head -1.Schalten Sie HTTPS mit
config set HTTPSSettings Enabled falsewieder aus und starten Sie neu.
Erwartetes Ergebnis
- Schritt 1: Die zweite Antwort trägt
X-Cache: HITund einenAge-Header. - Schritt 3: Die erste Anfrage nach dem Leeren ist kein Treffer; die nächste wieder.
- Schritt 7 listet das Zertifikat für
training.example.invalidmit Ablaufdatum und verbleibenden Tagen auf. - Schritt 8 gibt
HTTP/2 200oder eine Weiterleitung aus. - Der Trainer prüft das, indem er nach den verbleibenden Tagen fragt, die
ssl showausgegeben hat.
Quiz
- Welcher Header zeigt, dass eine Seite aus dem Antwort-Cache kam?
- Ein angemeldeter Redakteur sieht eine alte Seite. Ist der Antwort-Cache die Ursache?
- Was liefert Velocity aus, wenn das konfigurierte Zertifikat abgelaufen ist? A. nichts, HTTPS stoppt B. das abgelaufene Zertifikat C. einen selbstsignierten Ersatz D. einfaches HTTP auf Port 443
- Ein Erneuerungswerkzeug ersetzt die Zertifikatsdatei. Was muss der Betreiber tun?
- Welche Datei im Verzeichnis
ssl/lässt sich nicht neu erzeugen und muss gesichert werden?
Antworten
X-Cache: HIT, zusammen mit einemAge-Header.- Nein. Angemeldete Besucher werden nie daraus bedient; sehen Sie sich den View-Cache oder den HTTP-Cache an.
- C. Ein Paar, das die Prüfung nicht besteht, wird nie gezeigt; das selbstsignierte Zertifikat springt ein, bis das echte verwendbar ist (Velocity-HTTPS-Zertifikate).
- Nichts: Ein geändertes, gültiges Paar wird innerhalb von
watchInterval(60 Sekunden) ohne Neustart im laufenden Betrieb ausgetauscht. - Die ACME-Kontoschlüssel (
acme/account-<ca>.pem).
Weiterführende Informationen
- Velocity-Antwort-Cache: Einstellungen und Antworten für den Support.
- Velocity-HTTPS-Zertifikate: jede Zertifikatsquelle.
- Velocity, HTTPS und Zertifikate: die Funktionsseite.
- Ablauf von Zertifikaten: das Runbook.
- TLS und HTTPS: HTTPS für Hoster allgemein.
Verwandte Seiten
- Modul 2: Velocity
- Hosting und Betrieb: Kursüberblick
- Trainer: hier beginnen
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.