|
Tiderne ændrer sig konstant, og vores behov for sikker kommunikation stiger. På Discuz X3 står der, at https understøttes, så efter jeg fik SSL-certifikatet, tilføjede jeg SSL til hjemmesiden, så snart jeg fik det. Men efter at have tilføjet det, fandt jeg ud af, at mange steder ikke brugte https-links, så jeg begyndte at tjekke Discuz-kildekoden for at se, hvad der var gået galt. 1. SSL-certifikat og konfigurationFor det første, for at aktivere SSL, skal du have et certifikat, ikke? Om det udstedes af en almindelig CA eller underskrives af én selv, er det ikke muligt at have ingen sikkerhed. Hvis ikke, så ansøg først om en. (Google venligst den specifikke metode, jeg vil ikke gå i detaljer her) 2、Discuz! Optimeret2.1. ProcedurejusteringFra Discuz! X3 har tilføjet understøttelse af https, og hvis du bruger https til at få adgang til forummet, bliver linkene i forummet til https. Hvis du opdager, at de fleste links allerede bruger https, betyder det, at Discuz automatisk har genkendt det, og du kan springe dette trin over og gå direkte til næste trin. Discuz bruger $_SERVER['HTTPS'] til at vurdere SSL, men på grund af mit VPS-arkitekturproblem (nginx+php-fpm) kan det ikke genkendes på denne måde, så jeg er nødt til at lave nogle justeringer i Discuz-programmet (ved at bruge $_SERVER['SERVER_PORT']). kilde/klasse/discuz/discuz_application.php (ca. linje 187): Find: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopier kodeModificeret til: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopier kodeuc_server/avatar.php (ca. linje 13): Find: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kopier kodeModificeret til: - 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'], '/'))));
Kopier kodeEfter modifikationen opdaterede jeg cachen og fandt ud af, at de fleste links blev til https. 2.2. BaggrundsindstillingerDer er også indstillinger i baggrunden, som kan forstyrre brugen af https I baggrunden sætter >webmasteren > UCenter den > UCenter-adgangsadresse, som er ændret til at starte med https UCenter > Application Management > Applikationens hovedURL ændres til at starte med https Derudover kan nogle indstillinger i baggrunden > globale > domænenavneindstillinger også ugyldiggøre https; hvis du har fulgt de tidligere trin og stadig ikke kan aktivere det, kan du midlertidigt slette indstillingerne her for at prøve. 3. Ryd cachenNår indstillingerne er færdige, skal du rydde cachen for at aktivere. Ryd cachen og hukommelsescachen, og hvis du sætter postcachen, skal du rydde cachen i databasen (tømme den tilsvarende cache-database, eller vente på, at cachen fejler). På dette tidspunkt er Discuz https aktiveret med succes, og selvfølgelig kan låsen blive krydset, når man tilgår nogle sider. Fordi andet http-indhold indlæses på siden. Det kan være statistikkoder, QQ-delingskoder, QQ-show-avatarer osv., som ikke tilbyder https-protokol for nu, så de kan ikke aktiveres. Vent bare på, at Discuz understøtter https yderligere.
|