Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 14855|Отговор: 2

[Изграждане на знания за уебсайт] За Discuz! (X3.1) Как да активирам https криптиране

[Копирай линк]
Публикувано в 30.05.2015 г. 23:42:13 ч. | | |
Времената постоянно се променят, а нашето търсене на сигурна комуникация нараства. В Discuz X3 се казва, че https се поддържа, затова след като получих SSL сертификата, добавих SSL към сайта веднага щом го получих. Но след като го добавих, установих, че много места не използват https линкове, затова започнах да проверявам изходния код на Discuz, за да видя какво се е объркало.
1. SSL сертификат и конфигурация
Първо, за да активираш SSL, трябва да имаш сертификат, нали? Дали е издадена от обикновен CA или подписана от самия вас, не е възможно да се има сигурност. Ако не, първо кандидатствай за такъв. (Моля, потърсете конкретния метод в Google, няма да навлизам в подробности тук)
2、Discuz! Оптимизиран2.1. Корекция на процедурите
От Discuz! X3 добави поддръжка за https, а ако използвате https за достъп до форума, връзките във форума ще станат https. Ако установите, че повечето връзки вече използват https, това означава, че Discuz го е разпознал автоматично и можете да пропуснете тази стъпка и да преминете директно към следващата.
Discuz използва $_SERVER['HTTPS'] за оценка на SSL, но поради проблема ми с архитектурата на VPS (nginx+php-fpm) не може да бъде разпознат по този начин, затова трябва да направя някои корекции в програмата Discuz (използвайки $_SERVER['SERVER_PORT']).
източник/клас/дискузия/discuz_application.php (c. ред 187):
Открийте:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Копирай код
Модифицирано на:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Копирай код
uc_server/avatar.php (приблизително ред 13):
Открийте:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Копирай код
Модифицирано на:
  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'], '/'))));
Копирай код
След модификацията обнових кеша и установих, че повечето връзки станаха https.
2.2. Фонови настройки
Има и настройки на заден план, които могат да пречат на използването на https
На заден план >уебмастърът > UCenter задава адреса за достъп > UCenter, който се модифицира, за да започва с https
UCenter > Управление на приложения > Основният URL адрес на приложението се променя, за да започва с https
Освен това, някои настройки във фонов режим > глобални > домейн имена също могат да анулират https, ако сте направили предишните стъпки и все още не можете да го активирате, можете временно да изтриете настройките тук, за да опитате.
3. Изчистете кеша
След като настройките са завършени, трябва да изчистите кеша, за да подействат настройките.
Почистете кеша и кеша на паметта, и ако зададете post cache, трябва да почистите кеша в базата данни (изпразните съответната кеш база данни или изчакайте кешът да се повреди).
В този момент Discuz https е успешно активиран и, разбира се, при достъп до някои страници заключването може да бъде прекрачено. Защото друго http съдържание се зарежда в страницата. Може да са статистически кодове, QQ кодове за споделяне, QQ шоу аватари и др., които засега не предоставят https протокол, така че не могат да бъдат активирани. Просто изчакай Discuz да поддържа допълнително https.





Предишен:Колекция от нови продукти на Google I/O Conference 2015
Следващ:Самостартирането на Nginx се провали
Публикувано в 1.06.2015 г. 17:05:36 ч. |
Форумът иска да активира технологията за SSL криптирано предаване
Публикувано в 3.01.2018 г. 13:57:42 ч. |
Директен $_G['isHTTPS'] = вярно;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com