Deux jours complets que je m’arrache les cheveux à essayer de comprendre pourquoi l’update de Wordpress fonctionne avec mon proxy configuré alors que Dotclear pas.
Eh bien en fait, ça fonctionne pas non plus avec Wordpress ! Enfin si, mais pas directement. Je m’explique :
Pour vérifier une mise à jour, Wordpress passe la requête en HTTPS au Proxy. Si celle-ci échoue, alors une deuxième tentative est faite en HTTP simple, et bien sûr celle-ci passe tout droit et renvoie un joli code 200 avec toutes les infos attendues.
POST http://api.wordpress.org/core/version-check/1.7/?version=4.6.1&php=7.0.8&locale=fr_FR&mysql=5.5.42&local_package=fr_FR&blogs=1&users=5&multisite_enabled=0&initial_db_version=21707 HTTP/1.1 Host: api.wordpress.org User-Agent: WordPress/4.6.1; http://localhost/wordpress/ Accept-Encoding: deflate;q=1.0, compress;q=0.5, gzip;q=0.5 wp_install: http://localhost/wordpress/ wp_blog: http://localhost/wordpress/ Content-Length: 1011 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Connection: Close translations=%7B%22admin%22%3A%7B%22fr_FR%22%3A%7B%22POT-Creation-Date%22%3A%22%22%2C%22PO-Revision-Date%22%3A%222016-09-16+16%3A12%3A56%2B0000%22%2C%22Project-Id-Version%22%3A%22Administration%22%2C%22X-Generator%22%3A%22GlotPress%5C%2F2.1.0-alpha%22%7D%7D%2C%22admin-network%22%3A%7B%22fr_FR%22%3A%7B%22POT-Creation-Date%22%3A%22%22%2C%22PO-Revision-Date%22%3A%222016-07-17+06%3A41%3A12%2B0000%22%2C%22Project-Id-Version%22%3A%22Network+Admin%22%2C%22X-Generator%22%3A%22GlotPress%5C%2F2.1.0-alpha% HTTP/1.1 200 OK Server: nginx Date: Tue, 20 Sep 2016 08:22:30 GMT Content-Type: application/json; charset=UTF-8 Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN X-Cache: MISS from localhost Via: 1.1 localhost (squid/3.5.15) Connection: close {"offers":[{"response":"latest","download":"http:\/\/downloads.wordpress.org\/release\/fr_FR\/wordpress-4.6.1.zip","locale":"fr_FR","packages":{"full":"http:\/\/downloads.wordpress.org\/release\/fr_FR\/wordpress-4.6.1.zip","no_content":false,"new_bundled":false,"partial":false,"rollback":false},"current":"4.6.1","version":"4.6.1","php_version":"5.2.4","mysql_version":"5.0","new_bundled":"4.4","partial_version":false}],"translations":[]}
Du côté de Dotclear, depuis qu’on est passé à HTTPS sur le serveur, on redirige systématiquement les requêtes en HTTP vers HTTPS, du coup, forcément, pour ceux qui ont un proxy rétif au HTTPS, ça va pas fonctionner !
Pour conclure :
- Wordpress et Dotclear sont logés à la même enseigne concernant les requêtes HTTPS à travers le proxy, à un bémol près : Wordpress utilise la librairie Curl si elle est disponible et cette dernière s’en sort beaucoup mieux avec les proxy en HTTPS.
- Le site api.wordpress.org répond aux deux schémas, HTTP et HTTPS, sans renvoyer la 1re sur la seconde.
Du coup va falloir regarder comment gérer ça au mieux côté Dotclear, en essayant le schéma HTTP si HTTPS échoue et faire en sorte que le serveur ne redirige pas HTTP vers HTTPS.
1 De Mathieu -
Et as tu tenté de faire quelques essai avec une librairie PHP tel que Guzzle histoire de voir ?
http://guzzle.readthedocs.io/en/lat…
Personnellement j’utilise cette librairie dans quelques projet qui exploitent des proxy sock5 en relais sans avoir rencontrée de soucis (y compris sur des requetes HTTPS)
2 De Franck -
Oui j’y ai songé, mais pour l’instant les requirements sont trop avancés par rapport à ceux qu’on exige pour Dotclear, PHP 5.5 par exemple.
Je le garde sous le coude pour plus tard, merci !