SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs
Analysieren Sie SNI vs. ALPN in TLS-Handshakes. Diagnostizieren Sie HTTP/2-Verhandlungsfehler, H2- vs. http/1.1-Fallback, ClientHello-Erweiterungen, ServerHello-ALPN-Antworten und Proxy-Beendigungsprobleme in Wireshark-PCAPs.
Bei vielen „HTTP/2 funktioniert nicht“-Vorfällen handelt es sich in Wirklichkeit um TLS-ALPN-Verhandlungsprobleme. Benutzer suchen nach „TLS ALPN pcap“, „HTTP2-Fallback auf HTTP/1.1“, „ALPN h2 nicht ausgehandelt“, „ClientHello ALPN-Erweiterung“, „ServerHello ausgewähltes Protokoll“ und „Warum verwendet mein Browser HTTP/1.1“, wenn ein Endpunkt HTTP/2 unterstützen sollte, der Datenverkehr jedoch zurückfällt.
Die PCAP-Chirurgie ist nützlich, da der ALPN-Beweis im TLS-Handshake enthalten ist. Wenn die Erfassung ClientHello und ServerHello umfasst, können Sie oft nachweisen, ob der Client „h2“ angeboten hat, ob der Server es ausgewählt hat, ob ein Proxy TLS beendet hat oder ob die Verbindung nie eine Chance hatte, HTTP/2 auszuhandeln.
Was ALPN macht
ALPN bedeutet Application-Layer Protocol Negotiation. Dadurch können sich Client und Server während der TLS-Einrichtung auf ein Anwendungsprotokoll einigen.
Allgemeine ALPN-Werte:
- „h2“ für HTTP/2 über TLS.
- „http/1.1“ für HTTP/1.1.
- Andere Protokollkennungen für spezialisierte Systeme.
Wenn der Client „h2“ nicht anbietet, kann der Server es nicht auswählen. Wenn der Server nicht „h2“ auswählt, verwendet die Verbindung kein HTTP/2, auch wenn der Server an anderer Stelle HTTP/2 unterstützt.
Häufige Symptome
ALPN-Fehler treten auf als:
- Der Browser verwendet HTTP/1.1 anstelle von HTTP/2.
- Die gRPC-Verbindung schlägt fehl.
- CDN funktioniert, Origin jedoch nicht.
- Reverse-Proxy-Downgrade-Protokoll.
- Load Balancer beendet TLS und leitet HTTP/1.1 weiter.
- Mobile App meldet Protokollfehler.
- Servermetriken zeigen keinen H2-Verkehr.
- HTTP/2 funktioniert mit einem Hostnamen, mit einem anderen jedoch nicht.
Diese Symptome werden häufig auf der HTTP-Ebene behoben, die Antwort liegt jedoch möglicherweise in der TLS-Aushandlung.
ClientHello-Beweis
Das ClientHello kann anzeigen, ob der Client ALPN angeboten hat und welche Protokolle er beworben hat.
Nützliche Fragen:
- Ist die ALPN-Erweiterung vorhanden?
- Beinhaltet das Angebot „h2“?
- Enthält es auch „http/1.1“?
- Ist SNI vorhanden und korrekt?
- Welche TLS-Version wird angeboten?
- Wird die Erfassung durchgeführt, bevor ein Proxy TLS beendet?
Wenn „h2“ in ClientHello fehlt, kann der Server HTTP/2 nicht auswählen. Der Grund kann in der Konfiguration der Client-Bibliothek, einem alten TLS-Stack, einer deaktivierten HTTP/2-Option oder einem Proxy-Client liegen, der eine neue Upstream-Verbindung öffnet.
ServerHello-Beweise
Die Serverseite sollte ein Protokoll aus der ALPN-Liste des Clients auswählen.
Probleme:
- Der Server wählt nur „http/1.1“.
- Der Server lässt die ALPN-Antwort aus.
- Der Server-Handshake schlägt vor der ALPN-Auswahl fehl.
- Zertifikats- oder SNI-Nichtübereinstimmung leitet zu einem standardmäßigen virtuellen Host weiter.
- Der TLS-Terminator unterstützt h2 auf der öffentlichen Seite, jedoch nicht auf der Upstream-Seite.
Paketnachweise können die Serverunterstützung vom Routing- und Proxy-Verhalten trennen.
SNI und ALPN zusammen
SNI und ALPN sind oft miteinander verbunden. Der von SNI ausgewählte Hostname kann bestimmen, welche Zertifikat-, virtuellen Host- und Protokolleinstellungen gelten.
Beispielfehler:
- Der Kunde bietet „h2“ an.
- Client sendet falsche SNI.
- Der Server gibt das Standardzertifikat zurück.
- Der standardmäßige virtuelle Host aktiviert HTTP/2 nicht.
- Die Verbindung fällt auf „http/1.1“ zurück.
In diesem Fall ist das Problem nicht „HTTP/2 global defekt“. Es handelt sich um Hostnamen-Routing.
Proxy- und Load-Balancer-Beendigung
Moderne Bereitstellungen teilen TLS häufig auf:
client -> CDN or load balancer -> reverse proxy -> origin
Each segment may have different ALPN behavior. The public side may negotiate HTTP/2 while the upstream side uses HTTP/1.1. Or the reverse proxy may accept h2 from clients but downgrade to HTTP/1.1 when talking to the application.
When analyzing a pcap, identify which segment you captured. A trace on the origin server may not show the public client handshake at all.
gRPC and ALPN
gRPC usually requires HTTP/2. If ALPN does not negotiate h2, gRPC clients may fail with protocol errors, unavailable errors, or connection reset messages.
For gRPC troubleshooting, preserve:
- DNS answer.
- TCP handshake.
- TLS ClientHello.
- TLS ServerHello.
- ALPN protocol selected.
- Any TLS alert.
- First HTTP/2 frames if decrypted or visible through logs.
Even without decrypting payload, ALPN can prove whether HTTP/2 was negotiated.
Fallback is not always failure
HTTP clients may intentionally fall back to HTTP/1.1 when:
- Server does not advertise h2.
- Client policy disables HTTP/2.
- TLS version or cipher constraints are incompatible.
- Proxy strips or terminates the connection.
- ALPN extension is missing.
- A middlebox interferes with handshake.
The diagnostic question is whether fallback was expected for that route.
Debug checklist
Use this workflow:
- Capture from TCP handshake through TLS handshake.
- Confirm SNI hostname.
- Check ClientHello ALPN list.
- Confirm whether
h2is offered. - Check ServerHello selected ALPN.
- Compare certificate with SNI.
- Identify CDN, proxy, or load balancer termination.
- Compare public-side and origin-side captures if needed.
- Check whether the client library enables HTTP/2.
- Preserve the handshake when trimming the pcap.
Final diagnosis
TLS ALPN and HTTP/2 issues should be diagnosed from handshake evidence. The key facts are whether the client offered h2, whether the server selected it, whether SNI routed to the right virtual host, and whether a proxy changed protocol between network segments.
PCAP Surgery helps keep the exact handshake packets needed to prove HTTP/2 negotiation, fallback, or proxy termination behavior.
<!-- pcap-localized-evidence-foundation-v1:start -->Paketbasierte Antwort für „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“
Die direkte Antwort lautet: Ein Analyzer-Label oder eine Anwendungsmeldung bestimmt die Ursache nicht. Beginnen Sie mit Capture-Punkt und Flussrichtung, belegen Sie die letzte erfolgreiche Protokollgrenze und die erste fehlgeschlagene Grenze. Bei „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“ muss ein zweiter Prüfer das Paket, die Lücke oder das Intervall finden können, das eine Aussage trägt, und wissen, welcher Beleg sie widerlegen würde.
Capture auf der Pfadkarte einordnen
Dokumentieren Sie Client, Server sowie Proxy, Load Balancer, NAT oder Firewall dazwischen. Nennen Sie Interface, Ort, Uhr, Betriebssystem und sichtbare Richtungen. Ein Client-Capture beweist, was am Client ankommt, aber nicht, dass der Server nichts gesendet hat. Ein Server-Capture beweist den Ausgang an dieser Stelle, nicht den ganzen Pfad. Vor dem Zeitvergleich zweier Messpunkte korrigieren Sie Clock Offset und gleichen Flow-Tuple, TCP Sequence oder Transaktions-ID ab.
Prüfen Sie Messqualität: Snap Length, Dropped Packets, Offload, Capture Filter, Ring-Buffer-Grenzen und Startzeit. Ein falscher Checksum-Wert auf dem Host kann Offload Artifact sein. Ein großes Segment kann GRO/TSO darstellen und muss nicht so auf dem Draht existieren. Ein Packet, das in einer begrenzten Datei fehlt, ist erst dann Network Loss, wenn der Messpunkt es hätte sehen müssen.
Grenzen der Reihe nach lesen
| Grenze | Erfolgsbeleg | Nützlicher Fehlerbeleg |
|---|---|---|
| Link und IP | Richtung, Adressen, Route passen | ARP/NDP fehlt, ICMP, MTU, Asymmetrie |
| TCP | SYN, SYN-ACK, ACK und Sequence stimmen | Retransmission, RST, Zero Window, Timeout |
| TLS | ClientHello, ServerHello, Handshake-Fortschritt | Alert oder SNI/ALPN/Certificate-Grenze |
| Anwendung | vollständiger Request und zugehörige Antwort | Status, Gap oder Close vor Antwort |
| Nutzung | Response Time oder Failure Window | Stall an belegter Grenze |
Stoppen Sie an der ersten Grenze ohne Erfolgsnachweis. Ohne vollständiges TCP wird HTTP nicht zuerst diagnostiziert. Erreicht ein Request den Proxy, aber nicht den Upstream, liegt die Grenze im Proxy oder seinem Pfad. Erreicht er den Upstream ohne Antwort vor dem Policy Timeout, trennen ACK- und Byte-Fortschritt Application Delay von Network Loss.
Beobachtung und Hypothese trennen
Eine Beobachtung ist referenzierbar: „Der Client sendete bis zu einer Sequence, danach wiederholte der Sender ein Segment dreimal und am Messpunkt erschien kein fortschreitendes ACK.“ Die Hypothese lautet: „Der Pfad verlor das Segment.“ Ein anderer Capture-Punkt oder verlorene Capture Records können sie widerlegen. Notieren Sie pro Hypothese einen bestätigenden und einen widerlegenden Beleg.
Retransmission und Duplicate ACK bestimmen keinen Eigentümer. Reordering, Loss, Capture Artifact und Receiver Delay können ähnliche Labels erzeugen. Verbinden Sie Richtung, Sequence, ACK, SACK, RTT, Window und Anwendungstiming. Bei DNS oder DHCP ordnen Sie Transaction ID, Adressen und Versuche zu; bei HTTP Request und Response; bei TLS die Handshake-Richtung statt einer Paketfarbe.
Original vor Bearbeitung bewahren
Berechnen Sie den Checksum des Originals und halten Sie es in der Fallakte unverändert. Filterung, Trimming und Redaction erfolgen in einer Working Copy. Pro Operation werden Input, Transformation, Zeit, Packet Count vorher/nachher, Ergebnis-Checksum und Begründung protokolliert. Nach Timestamp Rewrite oder Packet-Löschung ist die Kopie für bestimmte Timing- oder Sequenzaussagen nicht mehr geeignet.
Pseudonymisieren Sie Adressen und Identifikatoren konsistent, damit derselbe Endpoint verfolgbar bleibt. Entfernen Sie Ports, Richtungen und Längen nicht, wenn sie das Urteil tragen. Die geheime Zuordnung bleibt getrennt. Prüfen Sie Capture- und Exportgrenzen und nutzen Sie den PCAP-Surgery-Ablauf für eine nachvollziehbare Ableitung.
QA vor der Veröffentlichung
Behandeln Titel und Antwort denselben Flow? Nennt jede Zeitangabe Uhr und Messpunkt? Ist die erste Fehlergrenze bestimmt? Gibt es eine Alternative? Kann ein Test mit einer Änderung wiederholt werden? Bleibt das Original erhalten? Eine belastbare Antwort nennt auch ihre Grenze: „Die Datei belegt das Verhalten am Client in diesem Intervall, nicht die interne Serverausführung.“
Semrush-Begriffe werden nicht automatisch verteilt. Der validierte Oberbegriff PCAP analyzer gehört allein dem Produktpfad; diese Seite bleibt bei ihrer technischen Frage und erfindet weder Volume noch KD.
<!-- pcap-localized-evidence-foundation-v1:end --><!-- multilingual-blog-closeout:start -->Direkte Antwort und Abnahmegrenze
Die kurze Antwort zu „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“ lautet: Analysieren Sie SNI vs. ALPN in TLS-Handshakes. Diagnostizieren Sie HTTP/2-Verhandlungsfehler, H2- vs. http/1.1-Fallback, ClientHello-Erweiterungen, ServerHello-ALPN-Antworten und Proxy-Beendigungsprobleme in Wireshark-PCAPs. Behandeln Sie diese Aussage als zu prüfendes Ergebnis und nicht als Versprechen für jede Eingabe, jedes Gerät, jedes Projekt oder jede Umgebung. Ein vollständiges Ergebnis dokumentiert Ausgangszustand, exakte Aktion, sichtbare Ausgabe und die Bedingung, die den Abschluss in PCAP Surgery belegt.
Evidenzorientiertes Vorgehen
Beginnen Sie mit einem kleinen, wiederholbaren Fall, bevor Sie ein vollständiges Projekt verändern. Protokollieren Sie Anwendungsversion, Betriebssystem, Eingabe- oder Geräteidentität, relevante Einstellungen und erwartetes Ergebnis. Führen Sie eine bewusste Aktion aus, bewahren Sie den ersten unerwarteten Übergang und vergleichen Sie möglichst mit einem bekannten guten Lauf. Mehrere gleichzeitige Änderungen verdecken, welche Bedingung den Fehler erzeugt oder behoben hat.
Prüfpunkt 1: SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs
Formulieren Sie für „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 2: Analysieren Sie SNI vs. ALPN in TLS-Handshakes. Diagnostizieren Sie HTTP/2-Verhandlungsfeh
Behandeln Sie „Analysieren Sie SNI vs. ALPN in TLS-Handshakes. Diagnostizieren Sie HTTP/2-Verhandlungsfehler, H2- vs. http/1.1-Fallback, ClientHello-Erweiterungen, S“ als eigene Abnahmegrenze für „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 3: Was ALPN macht
Formulieren Sie für „Was ALPN macht“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 4: Häufige Symptome
Behandeln Sie „Häufige Symptome“ als eigene Abnahmegrenze für „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 5: ClientHello-Beweis
Formulieren Sie für „ClientHello-Beweis“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 6: ServerHello-Beweise
Behandeln Sie „ServerHello-Beweise“ als eigene Abnahmegrenze für „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 7: SNI und ALPN zusammen
Formulieren Sie für „SNI und ALPN zusammen“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 8: Proxy- und Load-Balancer-Beendigung
Behandeln Sie „Proxy- und Load-Balancer-Beendigung“ als eigene Abnahmegrenze für „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Prüfpunkt 9: gRPC and ALPN
Formulieren Sie für „gRPC and ALPN“ eine reproduzierbare Pass/Fail-Aussage. Nennen Sie, was vorhanden sein muss, was fehlen muss und welche sichere Recovery bei einem Fehler möglich ist. Bewahren Sie Originalprojekt oder Capture unverändert, bis die reparierte Kopie dieselbe Prüfung bestanden hat.
Prüfpunkt 10: Fallback is not always failure
Behandeln Sie „Fallback is not always failure“ als eigene Abnahmegrenze für „SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs“. Halten Sie den Zustand vor der Aktion, die erste sichtbare Änderung und den Endzustand fest. Weicht das Ergebnis vom beschriebenen Ziel ab, kehren Sie zum letzten bestätigten Prüfpunkt zurück, statt mit Annahmen fortzufahren.
Abnahmematrix
| Prüfpunkt | Aufzubewahrender Nachweis | Passkriterium |
|---|---|---|
| SNI vs. ALPN: TLS-Handshake-Analyse und HTTP/2-Aushandlung in Wireshark-PCAPs | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Analysieren Sie SNI vs. ALPN in TLS-Handshakes. Diagnostizieren Sie HTTP/2-Verhandlungsfehler, H2- vs. http/1.1-Fallback | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Was ALPN macht | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| Häufige Symptome | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| ClientHello-Beweis | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
| ServerHello-Beweise | Ausgangszustand, eine Aktion und Ergebniszustand | Eine zweite Person kann das Ergebnis reproduzieren |
Fehlerisolierung, Recovery und Übergabe
Stoppen Sie beim ersten fehlerhaften Übergang. Bewahren Sie Quelle, Projekt, Session oder Capture und erstellen Sie vor destruktiven Änderungen eine Kopie. Ändern Sie pro Experiment nur eine Variable. Ein kompletter erneuter Lauf nach mehreren Änderungen kann anders enden, ohne die Ursache zu erklären.
Unterscheiden Sie fehlende Evidenz von Evidenz für ein Fehlen. Eine leere Ansicht kann auf falsche Eingabe, Scope, Filter, Berechtigung, Gerät, Zeitbereich oder Projektzustand hinweisen. Beweisen Sie Aufnahme oder Import, bevor Sie Decoder, Editor, Bericht oder Export interpretieren.
Öffnen Sie vor der Übergabe das dauerhafte Artefakt erneut und prüfen Sie Anfang, Entscheidungsstelle und Ende. Dokumentieren Sie Version, Plattform, Konfiguration, Erwartung, Beobachtung und kleinste Reproduktion. Entfernen oder schwärzen Sie sensible Daten und prüfen Sie die Berechtigung des Empfängers.
Fragen und Antworten
Wie beginnt man am schnellsten zuverlässig?
Verwenden Sie den kleinsten repräsentativen Fall, notieren Sie das erwartete Ergebnis und ändern Sie nur eine Variable. Beweisen Sie den Grundpfad, bevor Filter, Effekte, Bearbeitungen, Automatisierung oder größere Quellen hinzukommen.
Welche Evidenz sollte gespeichert werden?
Bewahren Sie Eingabeidentität, Version, Plattform, Einstellungen, exakte Aktion, ersten unerwarteten Übergang und Endausgabe. Projekt, Session, Bericht oder Export müssen geschlossen und erneut geöffnet werden.
Wann sollte das Verfahren wiederholt werden?
Wiederholen Sie es nach relevanten Änderungen an Anwendung, Betriebssystem, Treiber, Firmware, Modell, Quelle oder Workflow. Behalten Sie den früher akzeptierten Fall als unveränderte Vergleichsbasis.
Wann ist die Aufgabe übergabefähig?
Wenn eine autorisierte zweite Person Eingabe und Aktion erkennt, dasselbe Ergebnis reproduziert, verbleibende Grenzen versteht und das gespeicherte Artefakt ohne undokumentierten lokalen Zustand öffnen kann.
Verwandte Anleitungen
Diese gleichsprachigen Seiten decken angrenzende Schritte ab, ohne den kanonischen Eigentümer dieses Themas zu verändern:
- HTTP/2 GOAWAY- und RSTSTREAM-PCAP-Analyse: Debuggen von Reset-Streams, Proxy-Limits und gRPC-Fehlern
- Asymmetrisches Routing und einseitige PCAP-Analyse: Fehlende Antworten, halbe Gespräche, NAT, Firewall und Capture-Point-Fehler
- HTTP Slow Request und TTFB in PCAP: Nachweis, ob die Verzögerung DNS, TCP, TLS oder Serverzeit ist