web-dev-qa-db-fra.com

Contenu mixte - Problème SSL ou Opencart?

Cette question concerne: Contenu dupliqué www sur sous-domaine et SSL

Mon HTACCESS actuel:

RewriteBase /

# this redirects example.com and www.example.com to https - thanks closetnoc @webmasters-stackexange
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_Host} ^loja\.genesiseries\.com$ [NC,OR]
RewriteCond %{HTTP_Host} ^www\.loja\.genesiseries\.com$ [NC]
RewriteRule ^(.*)$ https://loja.genesiseries.com/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_Host} ^www\.loja\.genesiseries\.com$ [NC]
RewriteRule ^(.*)$ https://loja.genesiseries.com/$1 [R=301,L]

#Now start the normal rules
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteRule ^index\.php$ https://loja.genesiseries.com? [R=301,L]
# Tentativa de prevenir erro headers sent
#RewriteCond %{HTTP_Host} !^loja\.genesiseries\.com
#RewriteRule ^(.*)$ http://loja.genesiseries.com/$1 [R=301,L]

En utilisant ces règles, je reçois les erreurs suivantes: Capture d'écran originale

Contenu mixte: La page située à 'https://example.com/admin' a été chargée via HTTPS, mais elle a demandé un script non sécurisé 'http://example.com/admin/.../script.js'. Cette demande a été bloquée. le contenu doit être servi sur HTTPS.
:
:
etc.

Problème de configuration ou de règles SSL opencart?

4
Isleno Ituriel

J'ai trouvé ce lien qui pointe vers des changements de configuration: http://www.inmotionhosting.com/support/edu/opencart/setting-up-payment-gateways/how-to-enable-ssl-connection-in -opencart

Vous y verrez quelques modifications apportées à config.php.

Original:

define('HTTPS_SERVER', 'http://opencart.inmotiontesting.com/');
define('HTTPS_IMAGE', 'http://opencart.inmotiontesting.com/image/');

define('HTTPS_SERVER', 'http://opencart.inmotiontesting.com/admin/');
define('HTTPS_CATALOG', 'http://opencart.inmotiontesting.com/');
define('HTTPS_IMAGE', 'http://opencart.inmotiontesting.com/image/');

Nouveau:

define('HTTPS_SERVER', 'https://opencart.inmotiontesting.com/');
define('HTTPS_IMAGE', 'https://opencart.inmotiontesting.com/image/');

define('HTTPS_SERVER', 'https://opencart.inmotiontesting.com/admin/');
define('HTTPS_CATALOG', 'https://opencart.inmotiontesting.com/');
define('HTTPS_IMAGE', 'https://opencart.inmotiontesting.com/image/');

Vous remarquerez que la seule chose qui change est HTTP à HTTPS. J'ai vérifié un autre site et il est en accord avec les paramètres.

2
closetnoc

Je me rends compte que cette question est résolue, mais pour vous répondre: son côté OpenCart. Voici des conseils au cas où quelqu'un d'autre se heurterait à quelque chose de ce genre lorsqu'il tenterait d'utiliser le SSL partout:

- Comme mentionné précédemment, assurez-vous que config.php et admin/config.php pointent vers les variantes http et https. Assurez-vous également que tous les mods utilisant une configuration copiée (à la synchronisation vTiger) ont les URL mises à jour appropriées. Rappelez-vous qu'il y a toujours au moins 2 configurations à mettre à jour dans OC.

- Un avertissement concernant htaccess forcé 301: assurez-vous que votre thème, aucun module, ni aucun vQmods n'appelle pas le strict http: // assets. Ceci est une erreur fréquente dans OC, en particulier dans les thèmes ou les mods mal conçus qui réinventent la roue et appellent leurs propres polices JS /. Si vous trouvez des actifs stricts, remplacez-les par des URL relatives (//) dans la ou les sources. C'est le moyen préféré pour réparer les éléments non sécurisés, htaccess ne fera que parcourir ou masquer le problème et ne fonctionnera pas avec HSTS après l'accès de la première page (puisqu'il s'agit du côté client 307 & blocs). Très probablement, vous voulez utiliser HSTS, c'est un bon en-tête ... mais vos éléments non sécurisés ci-dessus ne fonctionneraient toujours pas.

- Vous devez réparer le gestionnaire de fichiers pour qu'il utilise des URL relatives natives (//) lorsqu'il attache un média. Cela éviterait les éléments non sécurisés à l'avenir. Le correctif dépasse le cadre de cette écriture, mais il implique d’éditer admin/controller/common/filemanager.php et de remplacer $this->data['directory'] = HTTP_CATALOG . 'image/data/'; par quelque chose comme $this->data['directory'] = str_replace('http:', '', HTTP_CATALOG) . 'image/data/'; (ou son équivalent HTTPS_).

- Si vous utilisez toujours le mode HTTPS, il est conseillé de modifier le system/library/url.php pour y inclure des ressources strictes auto-générées HTTPS (telles que des images, des menus, des liens, des scripts, etc.). C'est une solution très simple (1.5.5 à 1.5.6.4), il suffit de sauter dans ce fichier et de trouver $url = $this->url; puis de le changer en $url = $this->ssl;. Le correctif de l'actif magique.

- Un autre chemin: Il existe un "gestionnaire SSL partout" pour OpenCart qui aide à ce genre de choses et plus encore sans avoir besoin de htaccess ou de codage manuel. A 301, HSTS 307, précharge, actifs, parents, mandataires, etc.

Il y a plus de choses, mais ce genre de choses semble être ce que les gens rencontrent le plus avec SSL toujours dans OpenCart. J'espère que cela aidera les gens dans le futur!

1
dhaupin