https+wss proxy
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
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de walkor/php-http-proxy
-
use in client sideOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 30/100
walkor/php-http-proxy#10 ·
-
Usage with database clientOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 10/100
walkor/php-http-proxy#8 ·
-
request 404Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 15/100
walkor/php-http-proxy#6 ·
Toutes les issues de walkor/php-http-proxy
Issues similaires
-
Difficulté 2/5 Moins d'une heure Accessibilité débutants 78/100
opencart/opencart#15763 · 2 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
L: github:actions L: php:composer
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
dependabot/dependabot-core#16493 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
api-platform/core#8649 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
open-telemetry/opentelemetry-php#2071 ·
Les mainteneurs répondent en général sous 1 jour
-
Always show measure tooltipsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour