Ajouter le support du SNI au proxy connect
#3751
Closed
opened 7 years ago by prigent.yohann
·
17 comments
No Branch/Tag Specified
1.8
1.9.1
1.9.2
2.0
2.1
3.0
3.1
3.2
4.0
4.1
4.2
boutons-danger
coquille_doc
debug_ecrire_fichier
dev-sortable
dev/autoloader
dev/hasard_fixe
dev/instituer_ergo
dev/issue_4626_menu_squelettes
dev/issue_5447_exporter_csv
dev_infos_image
fix/valider_url_distante
fix_issue_5454
fix_modifier_login
issue_4101
issue_4678
issue_4705
issue_4717
issue_4836
issue_4946
issue_5258
issue_5344
issue_5427_bis
issue_5483_find_script_jquery
issue_5487_info_maj
master
v1.8.3+b
v1.9.1+i
v1.9.2+f
v1.9.2+g
v1.9.2+h
v1.9.2+i
v1.9.2+j
v1.9.2+k
v1.9.2+m
v1.9.2+n
v1.9.2+o
v1.9.2+p
v2.0.0
v2.0.1
v2.0.10
v2.0.11
v2.0.12
v2.0.13
v2.0.14
v2.0.15
v2.0.16
v2.0.17
v2.0.18
v2.0.19
v2.0.2
v2.0.20
v2.0.21
v2.0.22
v2.0.23
v2.0.24
v2.0.25
v2.0.26
v2.0.3
v2.0.5
v2.0.6
v2.0.7
v2.0.8
v2.0.9
v2.1.0
v2.1.1
v2.1.10
v2.1.11
v2.1.12
v2.1.13
v2.1.14
v2.1.15
v2.1.16
v2.1.17
v2.1.18
v2.1.19
v2.1.2
v2.1.20
v2.1.21
v2.1.22
v2.1.23
v2.1.24
v2.1.25
v2.1.26
v2.1.27
v2.1.28
v2.1.29
v2.1.3
v2.1.30
v2.1.4
v2.1.5
v2.1.6
v2.1.7
v2.1.8
v2.1.9
v3.0.0
v3.0.0-alpha.1
v3.0.0-beta
v3.0.0-beta.2
v3.0.0-rc
v3.0.1
v3.0.10
v3.0.11
v3.0.12
v3.0.13
v3.0.14
v3.0.15
v3.0.16
v3.0.17
v3.0.18
v3.0.19
v3.0.2
v3.0.20
v3.0.21
v3.0.22
v3.0.23
v3.0.24
v3.0.25
v3.0.26
v3.0.27
v3.0.28
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v3.0.7
v3.0.8
v3.0.9
v3.1.0
v3.1.0-alpha
v3.1.0-beta
v3.1.0-rc
v3.1.0-rc.2
v3.1.0-rc.3
v3.1.1
v3.1.10
v3.1.11
v3.1.12
v3.1.13
v3.1.14
v3.1.15
v3.1.2
v3.1.3
v3.1.4
v3.1.5
v3.1.6
v3.1.7
v3.1.8
v3.1.9
v3.2-alpha.1
v3.2.0
v3.2.0-alpha.1
v3.2.0-beta
v3.2.0-beta.2
v3.2.0-beta.3
v3.2.1
v3.2.10
v3.2.11
v3.2.12
v3.2.13
v3.2.14
v3.2.15
v3.2.16
v3.2.17
v3.2.2
v3.2.3
v3.2.4
v3.2.5
v3.2.6
v3.2.7
v3.2.8
v3.2.9
v4.0.0
v4.0.0-alpha
v4.0.0-beta
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v4.0.5
v4.0.6
v4.0.7
v4.0.8
v4.0.9
v4.1.0
v4.1.0-alpha
v4.1.0-beta
v4.1.0-rc
v4.1.1
v4.1.2
v4.1.3
v4.1.4
v4.1.5
v4.1.6
v4.1.7
v4.2.0-alpha
v4.2.0-alpha2
Labels
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
Apply labels
Clear labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Hello,
Actuellement, le proxy CONNECT ne supporte pas le SNI. Il faudrait pour ceci rajouter une option dans le streamContext.
Le patch est fourni en PJ pour SPIP 3.1, mais le soucis est aussi sur SPIP 3.0.
Merci d'avance !
Salut, es-tu certain du patch ? À ce que je lis, il faudrait aussi passer
'SNI_enabled' => true
pour que cela soit pris en compte, cf :http://stackoverflow.com/a/29244830
https://bugs.php.net/bug.php?id=63519
Hello,
Sur les infras où j'ai eu le soucis, ça fonctionne avec ce patch. Mais c'est ptet qu'un coup de chance :)
Du coup je teste avec le SNI_enabled et si tout est ok je corrige le patch.
Et moi je me demande si il faut pas renseigner aussi
peer_name
dans ce cas.Mais du coup j'en viens à me demander si la config est bien générique ou si d'un proxy à un autre on risque d'avoir des options différentes, auquel cas il vaudrait mieux extraire une partie du code dans une fonction surchargeable.
Oui, je pensais la même chose en signalant SNI_enabled, est-ce que ça fonctionnerait toujours si SNI n'était pas dispo ?
Hello,
J'ai fait plusieurs tests.
Je pense donc qu'on peut partir sur l'option 3 pour les proxy les plus capricieux.
A noter que j'avais créé le ticket en anomalie et non en évolution car avec la version actuelle, c'est tout cassé et on a une erreur 400.
Des news :) ?
confirmé par #3967
C'est intégré donc
Statut changé à Fermé
Bonjour,
En PHP 5.6, avec la version SPIP SVN du 01/08/2017, lorsque je clique sur le bouton "Essayer le proxy", j'obtiens le message :
Deprecated: SNI_server_name is deprecated in favor of peer_name in ...\ecrire\inc\distant.php on line 1345
Selon http://php.net/manual/en/context.ssl.php :
SNI_server_name string (...) Note: This option is deprecated, in favour of peer_name, as of PHP 5.6.0.
r23686 et r23687 devraient régler le problème de compat PHP 5.6, je te laisse nous le confirmer avant de faire le report en 3.1.
Statut changé à En cours
Je viens d'effectuer un test (en PHP 5.6) avec la version SPIP SVN du 24/08/2017. Lorsque je clique sur le bouton "Essayer le proxy", il n'y a plus de message d'erreur.
Merci d'avoir résolu ce problème.
Merci pour le retour, je viens de report en 3.1 avec r23688, on ferme de nouveau :)
Statut changé à Fermé
Bonjour,
La correction proposée ne fonctionne pas pour les versions php < 5.6,
$streamContext
n'étant pas un tableau mais un contexte de flux.Il est préférable d'utiliser la fonction
stream_context_set_option
dans ce cas (cf. patch ci-joint).Cordialement,
Bien vu, patch intégré en 3.3, 3.2 et 3.1, merci :)
Bonjour,
nous venons de passer l'intégralité de nos sites en SPIP 3.2 et le patch n'était pas présent dans le fichier distant.php, j'ai du le ré-appliquer manuellement sur chaque installation mutualisée.
stream_context_set_option($streamContext, 'ssl', 'SNI_server_name', $host);
Vous pouvez me confirmer que cela est bien reporté en 3.2 ?
Comme l'indiquent les commentaires ici oui, cf https://core.spip.net/projects/spip/repository/entry/branches/spip-3.2/ecrire/inc/distant.php#L1315