|
Časy sa neustále menia a naša požiadavka na bezpečnú komunikáciu rastie. V Discuz X3 sa uvádza, že https je podporovaný, takže po získaní SSL certifikátu som hneď po získaní SSL pridal na webstránku. Ale po pridaní som zistil, že na mnohých miestach https odkazy nepoužívajú, tak som začal kontrolovať zdrojový kód Discuz, aby som zistil, čo sa pokazilo. 1. SSL certifikát a konfiguráciaV prvom rade, na povolenie SSL musíte mať certifikát, však? Či už ho vydal bežný CA alebo ho podpísal sám, nie je možné mať istotu. Ak nie, najskôr sa o ňu prihlás. (Prosím, vyhľadajte si konkrétnu metódu na Googli, nebudem tu zachádzať do detailov) 2、Discus! Optimalizované2.1. Úprava postupuZ Discuz! X3 pridal podporu pre https a ak použijete https na prístup do fóra, odkazy vo fóre sa stanú https. Ak zistíte, že väčšina odkazov už používa https, znamená to, že Discuz ho automaticky rozpoznal a môžete tento krok preskočiť a prejsť priamo na ďalší krok. Discuz používa na posúdenie SSL _SERVER $['HTTPS'], ale kvôli môjmu problému s architektúrou VPS (nginx+php-fpm) ho takto nemožno rozpoznať, takže musím urobiť niekoľko úprav v programe Discuz (používajúc $_SERVER['SERVER_PORT']). Zdroj/Trieda/Discuz/discuz_application.php (C. verš 187): Nájdite: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopírovať kódUpravené na: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopírovať kóduc_server/avatar.php (približne riadok 13): Nájdite: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kopírovať kódUpravené na: - 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'], '/'))));
Kopírovať kódPo úprave som aktualizoval cache a zistil som, že väčšina odkazov sa zmenila na https. 2.2. PozadieNa pozadí sú tiež nastavenia, ktoré môžu zasahovať do používania https Na pozadí >webmaster > UCenter nastaví > UCenter prístupovú adresu, ktorá sa upraví tak, aby začínala s https UCenter > Správa aplikácií > Hlavná URL adresa aplikácie je upravená tak, aby začínala s https Okrem toho niektoré nastavenia na pozadí > globálnych > doménových mien môžu https tiež zneplatniť, ak ste urobili predchádzajúce kroky a stále ho nemôžete povoliť, môžete tu dočasne vymazať nastavenia a vyskúšať. 3. Vyčistiť cachePo dokončení nastavení musíte vymazať cache, aby sa nastavenia prejavili. Vyčistite cache a pamäťovú cache, a ak nastavíte post cache, musíte vyčistiť cache v databáze (vyprázdniť príslušnú cache databázu, alebo čakať, kým cache zlyhá). V tomto bode je Discuz https úspešne povolený a samozrejme, pri prístupe k niektorým stránkam môže byť zámok prekročený. Pretože na stránke sa načítava iný http obsah. Môžu to byť štatistické kódy, QQ zdieľacie kódy, QQ ukazovacie avatary a podobne, ktoré momentálne neposkytujú https protokol, takže ich nemožno povoliť. Len počkajte, kým Discuz viac podporí https.
|