Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 14855|Atsakyti: 2

[Svetainės kūrimo žinios] Apie "Discuz"! (X3.1) Kaip įjungti https šifravimą

[Kopijuoti nuorodą]
Paskelbta 2015-05-30 23:42:13 | | |
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ūracija
Visų 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 koregavimas
Iš 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:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopijuoti kodą
Pakeista į:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopijuoti kodą
uc_server/avatar.php (apytiksliai 13 eilutė):
Rasti:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kopijuoti kodą
Pakeista į:
  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'], '/'))));
Kopijuoti kodą
Po pakeitimo atnaujinau talpyklą ir pastebėjau, kad dauguma nuorodų tapo https.
2.2. Fono nustatymai
Taip 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.





Ankstesnis:2015 m. "Google I/O Conference" naujų produktų kolekcija
Kitą:"Nginx" savaiminis paleidimas nepavyko
Paskelbta 2015-06-01 17:05:36 |
Forumas nori įgalinti SSL šifruotą perdavimo technologiją
Paskelbta 2018-01-03 13:57:42 |
Tiesioginis $_G['isHTTPS'] = true;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com