Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 14855|Відповідь: 2

[Знання про створення вебсайту] Про Discuz! (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. Очистити кеш
Після завершення налаштувань потрібно очистити кеш, щоб налаштування почали діяти.
Очистіть кеш і кеш пам'яті, і якщо ви встановите кеш post cache, потрібно очистити кеш у базі даних (очистити відповідну базу кешу або дочекатися, поки кеш вийде з ладу).
На цьому етапі 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