Po riadku požiadavky CONNECT tieto bajty stále patria proxy:

CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\n

Preposlanie Host alebo User-Agent na port 443 poskytne cieľu hlavičky v čistom texte tam, kde očakáva TLS. Táto chyba môže nastať ešte predtým, než výber šifry vôbec začne hrať rolu.

  1. Čítajte a analyzujte až po ukončenie hlavičiek prázdnym riadkom, v rámci lehoty na nastavenie a limitu veľkosti hlavičiek.
  2. Aplikujte autentifikáciu proxy a politiku cieľa.
  3. Nadviažte schválené spojenie s cieľom.
  4. Odošlite úspešnú odpoveď CONNECT a prejdite do režimu tunela.

Uchovajte načítané bajty za hranicou pre príslušný ďalší stav. Nezahadzujte ich a nepovažujte hlavičky požiadavky proxy za neskoršiu požiadavku webu.

Klient má zodpovedajúcu povinnosť na strane odpovede: dokončite čítanie úspešnej odpovede CONNECT pred spustením tunelovaného protokolu. Obe strany sa musia zhodnúť na hranici, kde stream mení rolu.

Súvisiace články