Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 14855|Répondre: 2

[Connaissances sur la création de sites web] À propos de Discuz ! (X3.1) Comment activer le chiffrement https

[Copié le lien]
Publié sur 30/05/2015 23:42:13 | | |
Les temps évoluent constamment, et notre demande pour une communication sécurisée ne cesse de croître. Dans Discuz X3, il est dit que le https est pris en charge, donc après avoir obtenu le certificat SSL, j’ai ajouté SSL au site dès que je l’ai eu. Mais après l’avoir ajouté, j’ai constaté que beaucoup d’endroits n’utilisaient pas de liens https, alors j’ai commencé à vérifier le code source de Discuz pour voir ce qui n’allait pas.
1. Certificat SSL et configuration
Tout d’abord, pour activer la SSL, il faut avoir un certificat, n’est-ce pas ? Qu’il soit émis par un CA ordinaire ou signé par soi-même, il n’est pas possible de ne pas avoir de certitude. Sinon, postulez d’abord pour en obtenir un. (Merci de chercher sur Google la méthode spécifique, je ne vais pas entrer dans les détails ici)
2、Discuz ! Optimisé2.1. Ajustement de la procédure
De Discuz ! X3 a ajouté la prise en charge de https, et si vous utilisez https pour accéder au forum, les liens dans le forum deviendront https. Si vous constatez que la plupart des liens utilisent déjà https, cela signifie que Discuz l’a automatiquement reconnu, et vous pouvez sauter cette étape et passer directement à l’étape suivante.
Discuz utilise $_SERVER['HTTPS'] pour juger SSL, mais à cause de mon problème d’architecture VPS (nginx+php-fpm), il ne peut pas être reconnu de cette façon, donc je dois faire quelques ajustements au programme Discuz (en utilisant $_SERVER['SERVER_PORT']).
Source/Classe/Disque/discuz_application.php (vers la ligne 187) :
Trouver :
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Code de copie
Modifié en :
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Code de copie
uc_server/avatar.php (vers la ligne 13) :
Trouver :
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Code de copie
Modifié en :
  1. define('UC_API', strtolower(($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Code de copie
Après la modification, j’ai mis à jour le cache et j’ai constaté que la plupart des liens devenaient https.
2.2. Paramètres en arrière-plan
Il existe aussi des réglages en arrière-plan qui peuvent interférer avec l’utilisation de https
En arrière-plan, le >webmaster > UCenter définit l’adresse d’accès > UCenter, qui est modifiée pour commencer par https
UCenter > Gestion d’applications > L’URL principale de l’application est modifiée pour commencer par https
De plus, certains paramètres en arrière-plan > dans les paramètres globaux > noms de domaine peuvent également invalider https ; si vous avez suivi les étapes précédentes et que vous ne pouvez toujours pas les activer, vous pouvez temporairement supprimer les paramètres ici pour essayer.
3. Vider le cache
Une fois les réglages terminés, il faut vider le cache pour que les paramètres prennent effet.
Nettoie le cache et le cache mémoire, et si tu configures le cache post, tu dois nettoyer le cache dans la base de données (vider la base de données correspondante, ou attendre que le cache tombe en panne).
À ce stade, Discuz https est activé avec succès, et bien sûr, lors de l’accès à certaines pages, le verrou peut être franchi. Parce que d’autres contenus http sont chargés dans la page. Cela peut être des codes statistiques, des codes de partage QQ, des avatars de présentation QQ, etc., qui ne fournissent pas de protocole https pour le moment, donc ils ne peuvent pas être activés. Attendez simplement que Discuz prenne davantage en charge https.





Précédent:Collection de nouveaux produits de la conférence Google I/O 2015
Prochain:L’autodémarrage Nginx a échoué
Publié sur 01/06/2015 17:05:36 |
Le forum souhaite activer la technologie de transmission chiffrée SSL
Publié sur 03/01/2018 13:57:42 |
Direct $_G['isHTTPS'] = vrai ;
définir('UC_API', strtolower('https ://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')))) ;
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com