Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

https+wss proxy

Ouverte
#13 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
php
Domaine
networking

Piste de recherche

Commencez par la reproduction minimale dans l’issue et inspectez le gestionnaire onMessage, y compris la configuration de Worker et AsyncTcpConnection ainsi que la gestion de CONNECT. Reproduisez l’échec HTTPS/WSS, puis vérifiez que le proxy établit un tunnel chiffré fonctionnel sans perturber le comportement HTTP/WebSocket existant.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Hi @walkor. In my project, i'm using this awesome example of http proxy server. And its work fine. Btw its work for http+websocket proxy.
But when i try to use it with https and wss its fail.
I see, that this is because in method "onMessage" i have encrypted data. Can you pls help me to solve this task?

Of cource, when i do this

$remote_connection->pipe($connection); 
$connection->pipe($remote_connection);
$remote_connection->connect();

data passing encrypted to destination and its not what he expects.

I try to replace tcp://0.0.0.0:xxx to http://0.0.0.0:xxx, but it still not working. Pls, help me.

Here is my minimal code, for reproduce

<?php

$context = array(
    'ssl' => array(
        'local_cert' => app_paths['ssl_public_key'], // Alternatively, it can be a crt file
        'local_pk' => app_paths['ssl_private_key'],
        'verify_peer' => false,
        'allow_self_signed' => true,
    )
);

$worker = new Worker('tcp://0.0.0.0:' . $args['port'], $context);
$worker->transport = 'ssl';

$worker->onMessage = function ($connection, $buffer) use ($args) {

    list($method, $addr, $http_version) = explode(' ', $buffer);
    $remote_connection = new AsyncTcpConnection("tcp://{$args['proxy-ip']}:{$args['port']}");
    if ($method !== 'CONNECT') {
        $remote_connection->send($buffer);
    } else {
        $connection->send("HTTP/1.1 200 Connection Established\r\n\r\n");
    }
    $remote_connection->pipe($connection);
    $connection->pipe($remote_connection);
    $remote_connection->connect();

};
Langage dominant
PHP
Étoiles
207
Forks
92
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de walkor/php-http-proxy

Toutes les issues de walkor/php-http-proxy

Issues similaires

Plus d'issues PHP

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.