|
Az idők folyamatosan változnak, és a biztonságos kommunikáció iránti igényünk növekszik. A Discuz X3-ban azt írják, hogy a https támogatott, így miután megkaptam az SSL tanúsítványt, azonnal hozzáadtam SSL-t a weboldalra, amint megkaptam. De miután hozzáadtam, azt tapasztaltam, hogy sok helyen nem használják a https linkeket, ezért elkezdtem ellenőrizni a Discuz forráskódját, hogy lássam, mi ment félre. 1. SSL tanúsítvány és konfigurációElőször is, az SSL engedélyezéséhez igazolvánnyal kell rendelkezned, igaz? Akár egy átlagos ügyvédi kibocsátás, akár ő maga írja alá, nem lehet biztos lenni. Ha nem, jelentkezz először egyre. (Kérlek, gukereszek a konkrét módszert, itt nem megyek a részletekbe) 2、Discuz! Optimalizált2.1. Eljárás módosításaA Discuztól! Az X3 hozzáadta a https-támogatást, és ha https-et használsz a fórum eléréséhez, a fórumon lévő linkek https-nek lesznek. Ha azt tapasztalod, hogy a legtöbb link már használ https-t, az azt jelenti, hogy a Discuz automatikusan felismerte azt, és ezt a lépést kihagyhatod, és közvetlenül a következő lépésre mehetsz. A Discuz $_SERVER['HTTPS'] segítségével ítéli meg az SSL-t, de a VPS architektúra problémám (nginx+php-fpm) miatt nem ismerhető fel így, ezért néhány módosítást kell végeznem a Discuz programon ($_SERVER['SERVER_PORT']-val). forrás/osztály/discuz/discuz_application.php (k. 187. sor): Találd: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kód másolásaMódosítva: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kód másolásauc_server/avatar.php (kb. 13. sor): Találd: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kód másolásaMódosítva: - 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'], '/'))));
Kód másolásaA módosítás után frissítettem a gyorsítótárt, és azt tapasztaltam, hogy a legtöbb link https-re vált. 2.2. HáttérbeállításokVannak olyan beállítások is, amelyek zavarhatják az https használatát A háttérben a >webmester > UCenter beállítja a > UCenter hozzáférési címet, amelyet úgy módosítanak, hogy https-szel kezdje UCenter > alkalmazáskezelés > Az alkalmazás fő URL-jét úgy módosítják, hogy a https-szel kezdje Ezen felül néhány háttérbeállítás > globális > domain név beállítása is érvénytelenítheti az https-et; ha már megtetted az előző lépéseket, de még mindig nem tudod engedélyezni, ideiglenesen törölheted a beállításokat itt, hogy megpróbáld. 3. Töröld a gyorsítótártMiután a beállítások elkészültek, töröld a cache-t, hogy a beállítások érvényesüljenek. Tisztítsd ki a cache- és memória cache-t, és ha beállítod a post cache-t, akkor ki kell tisztítanod az adatbázisban (kiürítsd a megfelelő cache adatbázist, vagy várd meg, amíg a cache meghibásodik). Ekkor a Discuz https sikeresen aktiválódott, és persze bizonyos oldalak elérésénél előfordulhat, hogy a zárolás átléphető. Mert más http tartalmak is betöltődnek az oldalon. Lehetnek statisztikai kódok, QQ megosztási kódok, QQ show avatárok stb., amelyek egyelőre nem biztosítanak https protokollt, így nem engedélyezhetők. Csak várd meg, amíg a Discuz tovább támogatja a https-t.
|