Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 14855|Odgovoriti: 2

[Znanje o ustvarjanju spletne strani] O Discusu! (X3.1) Kako omogočiti šifriranje https

[Kopiraj povezavo]
Objavljeno na 30. 05. 2015 23:42:13 | | |
Časi se nenehno spreminjajo, naše povpraševanje po varni komunikaciji pa narašča. V Discuz X3 piše, da je https podprt, zato sem po pridobitvi SSL certifikata takoj, ko sem ga dobil, dodal SSL na spletno stran. A po dodajanju sem ugotovil, da veliko krajev ne uporablja https povezav, zato sem začel preverjati izvorno kodo Discuz, da vidim, kaj je šlo narobe.
1. SSL potrdilo in konfiguracija
Najprej, da omogočiš SSL, moraš imeti certifikat, kajne? Ne glede na to, ali ga izdaja redni CA ali ga je podpisal posameznik, ni mogoče imeti negotovosti. Če ne, se najprej prijavi za enega. (Prosim, poguglajte točno metodo, tukaj ne bom šel v podrobnosti)
2、Discus! Optimizirano2.1. Prilagoditev postopka
Iz Discusa! X3 je dodal podporo za https, in če uporabite https za dostop do foruma, bodo povezave na forumu postale https. Če ugotovite, da večina povezav že uporablja https, to pomeni, da ga je Discuz samodejno prepoznal in lahko ta korak preskočite ter greste neposredno na naslednji korak.
Discuz uporablja $_SERVER['HTTPS'] za ocenjevanje SSL, vendar zaradi moje težave z arhitekturo VPS (nginx+php-fpm) tega ni mogoče prepoznati na ta način, zato moram nekaj prilagoditi Discuzovemu programu (z uporabo $_SERVER['SERVER_PORT']).
vir/razred/discuz/discuz_application.php (c. vrstica 187):
Najdi:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopiraj kodo
Spremenjeno v:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopiraj kodo
uc_server/avatar.php (približno vrstica 13):
Najdi:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kopiraj kodo
Spremenjeno v:
  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'], '/'))));
Kopiraj kodo
Po spremembi sem posodobil predpomnilnik in ugotovil, da je večina povezav postala https.
2.2. Ozadja
V ozadju so tudi nastavitve, ki lahko motijo uporabo https
V ozadju >webmaster > UCenter nastavi > UCenter dostopni naslov, ki se spremeni tako, da začne s https
UCenter > upravljanje aplikacij > Glavni URL aplikacije se spremeni tako, da začne z https
Poleg tega lahko nekatere nastavitve v ozadju > globalnih > domenskih imen prav tako razveljavijo https; če ste naredili prejšnje korake in ga še vedno ne morete omogočiti, lahko začasno izbrišete nastavitve tukaj in poskusite.
3. Izpraznite predpomnilnik
Ko so nastavitve končane, moraš počistiti predpomnilnik, da se nastavitve začnejo veljati.
Očistite predpomnilnik in pomnilniški predpomnilnik, in če nastavite postpredpomnilnik, ga morate očistiti tudi v bazi podatkov (izprazniti ustrezno bazo predpomnilnika ali počakati, da predpomnilnik odpove).
Na tej točki je Discuz https uspešno omogočen, seveda pa je mogoče pri dostopu do nekaterih strani zaklep prekršiti. Ker je na strani naložena druga http vsebina. Lahko gre za statistične kode, QQ kode za deljenje, QQ prikazovalne avatarje itd., ki trenutno ne zagotavljajo https protokola, zato jih ni mogoče omogočiti. Samo počakaj, da Discuz še dodatno podpira https.





Prejšnji:Nova kolekcija izdelkov na Google I/O konferenci 2015
Naslednji:Samozagon Nginxa je propadel
Objavljeno na 1. 06. 2015 17:05:36 |
Forum želi omogočiti tehnologijo prenosa s SSL šifriranjem
Objavljeno na 3. 01. 2018 13:57:42 |
Neposredno $_G['isHTTPS'] = res;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com