Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 14855|Ответ: 2

[Создание знаний на сайте] О Дискузе! (X3.1) Как включить https-шифрование

[Скопировать ссылку]
Опубликовано 30.05.2015 23:42:13 | | |
Времена постоянно меняются, и наш спрос на безопасную коммуникацию растёт. В Discuz X3 говорится, что поддерживает https, поэтому после получения SSL-сертификата я сразу добавил SSL на сайт, как только получил его. Но после добавления я обнаружил, что во многих местах не используют https-ссылки, поэтому я начал проверять исходный код Discuz, чтобы понять, что пошло не так.
1. SSL-сертификат и конфигурация
Прежде всего, чтобы включить SSL, вам же нужен сертификат, верно? Независимо от того, выдано ли оно обычным CA или подписано самим собой, невозможно быть уверенным. Если нет, сначала подайте заявку. (Пожалуйста, погуглите конкретный метод, я не буду вдаваться в подробности)
2、Дискуз! Оптимизировано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. Очистить кэш
После завершения настроек нужно очистить кэш, чтобы настройки сработали.
Очистите кэш и кэш памяти, и если вы установили пост-кэш, нужно очистить кэш в базе данных (очистить соответствующую базу кэша или дождаться, пока кэш не выйдет).
В этот момент Discuz https успешно активируется, и, конечно, при доступе к некоторым страницам блокировка может быть пересечена. Потому что на страницу загружается другой http-контент. Это могут быть статистические коды, коды обмена QQ, аватары QQ и т.д., которые пока не поддерживают https-протокол, поэтому их нельзя включить. Просто дождитесь, пока Discuz продолжит поддержку https.





Предыдущий:Коллекция новых продуктов конференции Google I/O 2015 года
Следующий:Самозапуск Nginx провалился
Опубликовано 01.06.2015 17:05:36 |
Форум стремится внедрить технологию передачи с шифрованием SSL
Опубликовано 03.01.2018 13:57:42 |
Прямой $_G['isHTTPS'] = true;
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