|
Laikai nuolat keičiasi, o saugaus bendravimo poreikis didėja. "Discuz X3" sakoma, kad https yra palaikomas, todėl gavęs SSL sertifikatą į svetainę įtraukiau SSL, kai tik jį gavau. Bet pridėjęs pastebėjau, kad daugelyje vietų https nuorodos nenaudojamos, todėl pradėjau tikrinti "Discuz" šaltinio kodą, kad pamatyčiau, kas nutiko. 1. SSL sertifikatas ir konfigūracijaVisų pirma, norėdami įjungti SSL, turite turėti sertifikatą, tiesa? Nesvarbu, ar jį išduoda įprasta CA, ar pasirašo pats, neįmanoma neturėti tikrumo. Jei ne, pirmiausia kreipkitės dėl vieno. (Prašome google konkretų metodą, aš čia nesigilinsiu) 2 、 Diskas! Optimizuotas2.1. Procedūros koregavimasIš Discuz! X3 pridėjo https palaikymą, o jei naudosite https prieigai prie forumo, forume esančios nuorodos taps https. Jei pastebėsite, kad dauguma nuorodų jau naudoja https, tai reiškia, kad "Discuz" jį automatiškai atpažino, ir galite praleisti šį veiksmą ir pereiti tiesiai prie kito veiksmo. Discuz naudoja $_SERVER['HTTPS'] spręsti SSL, bet dėl mano VPS architektūros problemos (nginx+php-fpm), jo negalima atpažinti tokiu būdu, todėl turiu šiek tiek pakoreguoti Discuz programą (naudojant $_SERVER['SERVER_PORT']). šaltinis/klasė/discuz/discuz_application.php (c. 187 eilutė): Rasti: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopijuoti kodąPakeista į: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopijuoti kodąuc_server/avatar.php (apytiksliai 13 eilutė): Rasti: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kopijuoti kodąPakeista į: - 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'], '/'))));
Kopijuoti kodąPo pakeitimo atnaujinau talpyklą ir pastebėjau, kad dauguma nuorodų tapo https. 2.2. Fono nustatymaiTaip pat fone yra nustatymų, kurie gali trukdyti naudoti https Fone >webmaster > UCenter nustato > UCenter prieigos adresą, kuris modifikuojamas taip, kad prasidėtų https UCenter > Application Management > Pagrindinis programos URL modifikuojamas, kad prasidėtų https Be to, kai kurie fono > visuotinio > domeno vardo nustatymai taip pat gali panaikinti https, jei atlikote ankstesnius veiksmus ir vis tiek negalite jo įjungti, galite laikinai ištrinti nustatymus čia, kad pabandytumėte. 3. Išvalykite talpykląBaigę nustatymus, turite išvalyti talpyklą, kad nustatymai įsigaliotų. Išvalykite talpyklą ir atminties talpyklą, o jei nustatėte įrašų talpyklą, turite išvalyti talpyklą duomenų bazėje (ištuštinti atitinkamą talpyklos duomenų bazę arba palaukti, kol talpykla nepavyks). Šiuo metu "Discuz https" sėkmingai įjungtas ir, žinoma, prisijungus prie kai kurių puslapių, užraktas gali būti peržengtas. Nes į puslapį įkeliamas kitas http turinys. Tai gali būti statistikos kodai, QQ dalijimosi kodai, QQ šou avatarai ir kt., kurie kol kas neteikia https protokolo, todėl jų negalima įjungti. Tiesiog palaukite, kol Discuz toliau palaikys https.
|