Nous avons plusieurs environnements et nous venons de commencer à utiliser WordPress (Dev, QA, Pre-prod, prod etc ...). Https n'est pas activé dans les environnements inférieurs et tout fonctionne correctement. Dans nos environnements de production, le site redirige tout le trafic vers https.
Le premier problème semble ne concerner que le chrome. Chrome refuse de charger quoi que ce soit sur la page qui ne soit pas https. Je ne sais pas comment faire en sorte que WordPress charge jquery ou styles.css (à partir de mon thème) via https (plus d'informations ci-dessous).
Le deuxième problème également avec HTTPS est que nous ne pouvons pas nous connecter à wordpress dans les environnements qui utilisent HTTPS. Lorsque l'écran de connexion se charge (sitename.com/wp-admin), vous êtes redirigé vers wp-login comme prévu, mais lorsque vous entrez votre nom d'utilisateur/mot de passe, la page est simplement actualisée. Aucune erreur (vérifié console/firebug et httpfox et n'a pas pu trouver d'erreurs).
Je sais que nous faisons quelque chose de mal avec https en général, car nous rencontrons de nombreux problèmes dans les environnements qui le prennent en charge. J'ai fait beaucoup de recherches sur Google et je n'ai pas vraiment développé l'utilisation de HTTPS et de Wordpress de manière surprenante. Outre les réponses aux questions sur le chargement de jquery via HTTPS et sur la connexion aux instances https wordpress, existe-t-il de bons liens sur la façon de travailler avec HTTPS dans wordpress. Presque tout ce que j'ai trouvé indique l'utilisation du plugin WordPress HTTPS et nous allons l'essayer, mais je ne suis pas sûr que cela résoudra tous nos problèmes.
Note * Dans mon functions.php, j'utilise Enqueue pour charger les fichiers JS et CSS de la bonne façon, et j'utilise un chemin relatif pour ces charges //sitename.com/bla/bla qui fonctionne bien. Je charge jquery en utilisant: dans mon header.php et styles.css sont chargés automatiquement dans le cadre du chargement de mon thème avec, je ne sais donc pas comment configurer le chargement via HTTPS ou si c'est la bonne approche pour corriger ces problèmes. (jQuery est en cours de chargement à partir de notre système de fichiers local et non d'un CDN). Toute aide serait grandement appréciée. Merci d'avance.
Nous avons trouvé une solution et elle semble être purement environnementale, comme dans un problème de configuration de nos environnements. En l'occurrence, notre serveur MySQL et notre serveur actuel ne se trouvaient pas sur la même boîte et wordpress devait connaître explicitement la différence entre une requête acheminée vers la boîte MySQL et la boîte contenant le code réel. Le correctif a donc consisté à déterminer quelles entrées de la base de données devaient pointer vers le SQL et lesquelles pointer vers le serveur Web.
Une fois que nous avons compris comment configurer les environnements afin que je puisse me connecter, j'ai activé le plug-in HTTPS et nous avons pu charger le site, corrigeant normalement le problème de chrome des demandes non http bloquées.
Puisque vous êtes derrière un équilibreur de charge (confirmé dans vos commentaires ci-dessus), votre installation WordPress ne pourra pas détecter SSL à l'aide de la fonction is_ssl () , et ne servira aucun script ni aucune feuille de style mis en file d'attente avec https: protocol URI.
Si vous vous trouvez derrière un équilibreur de charge prenant en charge la variable serveur HTTP_X_FORWARDED_PROTO
, vous pouvez résoudre votre problème en ajoutant cet extrait à votre fichier wp-config.php:
// Amazon AWS Elastic Load Balancer, CloudFlare, and some others
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
Si vous êtes assez malchanceux pour être hébergé sur Network Solutions, commencez par vous battre contre un bureau, puis essayez de transformer ce Gist en un plugin déjà activé (car vous ne pouvez pas activer de nouveaux plugins car vous ne pouvez pas vous connecter à admin. ): https://Gist.github.com/webaware/4688802
En fait, vous devriez pouvoir forcer votre administrateur à ne pas utiliser SSL, à vous connecter, à installer tous les plug-ins dont vous avez besoin, puis à test votre installation sur SSL pour voir si tout fonctionne, avant de le forcer à utiliser SSL. Ajoutez ceci à votre fichier wp-config.php, en modifiant WP_SITEURL
et WP_HOME
pour les faire correspondre à votre serveur réel.
define('FORCE_SSL_LOGIN', false);
define('FORCE_SSL_ADMIN', false);
define('WP_SITEURL', 'http://example.com/');
define('WP_HOME', 'http://example.com/');
La plupart des problèmes liés à SSL sont dus au fait que des plugins/thèmes utilisent un code incorrect pour charger CSS/JS.
Sous Paramètres généraux de WordPress, changez l'adresse WordPress (URL) et l'adresse du site (URL) de HTTP à HTTPS. Si vous n'avez pas accès à votre administrateur, vous pouvez le modifier via votre wp-config.php
http://codex.wordpress.org/Editing_wp-config.php
Utilisez les chemins d’URL appropriés pour vos thèmes et vos plugins: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories par exemple, le codage en dur du WP_PLUGIN_URL
ne fonctionnera pas par opposition à plugin_dir_url
. Les fonctions sont généralement compatibles avec SSL, car elles ont le temps de vérifier si le site est compatible SSL, mais pas les constantes.
Pour l'admin/login, vous pouvez forcer SSL via le wp-config.php
:
Login: define('FORCE_SSL_LOGIN', true);
Admin: define('FORCE_SSL_ADMIN', true);
Bien sûr, tout actif codé en dur sera un problème ou des plugins/thèmes qui chargent des actifs de manière incorrecte.
Vous pouvez également mettre à jour vos thèmes et plug-ins via SSL si votre serveur dispose de libssh2
, vous pouvez également définir les numéros de port et d'authentification. Si cela est activé, vous ne devez rien définir, cela s'affichera comme par magie dans les paramètres de l'administrateur.
D'accord! Cela m'est arrivé comme ça avant. Assurez-vous de charger votre fichier jquery correctement, puis vérifiez à nouveau le fichier javascript dépendant des plugins. WordPress a quelques façons de charger le fichier js. Encore une fois pour vérifier pour ne pas charger le fichier jQuery wordpress par défaut et votre fichier de version jQuery personnalisé. Pour votre problème HTTP, veuillez lire html5boilerplate.com car ils utilisent des méthodes plus intelligentes pour HTTP. Ne piratez pas trop le fichier core :)