|
Tidene endrer seg stadig, og vårt behov for sikker kommunikasjon øker. På Discuz X3 står det at https støttes, så etter at jeg fikk SSL-sertifikatet, la jeg til SSL på nettsiden så snart jeg fikk det. Men etter å ha lagt det til, oppdaget jeg at mange steder ikke brukte https-lenker, så jeg begynte å sjekke Discuz-kildekoden for å se hva som gikk galt. 1. SSL-sertifikat og konfigurasjonFørst og fremst, for å aktivere SSL, må du ha et sertifikat, ikke sant? Om det er utstedt av en vanlig CA eller signert av en selv, er det ikke mulig å ha noen sikkerhet. Hvis ikke, søk først om en. (Vennligst google den spesifikke metoden, jeg går ikke i detalj her) 2、Discuz! Optimalisert2.1. ProsedyrejusteringFra Discuz! X3 har lagt til støtte for https, og hvis du bruker https for å få tilgang til forumet, vil lenkene i forumet bli https. Hvis du oppdager at de fleste lenkene allerede bruker https, betyr det at Discuz automatisk har gjenkjent det, og du kan hoppe over dette steget og gå direkte til neste steg. Discuz bruker $_SERVER['HTTPS'] for å vurdere SSL, men på grunn av mitt VPS-arkitekturproblem (nginx+php-fpm) kan det ikke gjenkjennes på denne måten, så jeg må gjøre noen justeringer i Discuz-programmet (med $_SERVER['SERVER_PORT']). kilde/klasse/diskus/discuz_application.php (ca. linje 187): Finn: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopier kodenModifisert til: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopier kodenuc_server/avatar.php (ca. linje 13): Finn: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kopier kodenModifisert 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 kodenEtter endringen oppdaterte jeg cachen og fant ut at de fleste lenkene ble https. 2.2. BakgrunnsinnstillingerDet finnes også innstillinger i bakgrunnen som kan forstyrre bruken av https I bakgrunnen setter >webmasteren > UCenter > UCenter-tilgangsadressen, som endres til å starte med https UCenter > Application Management > Hoved-URL-en til applikasjonen er endret til å starte med https I tillegg kan noen innstillinger i bakgrunnen > globale > domenenavnsinnstillinger også ugyldiggjøre https; hvis du har tatt de forrige stegene og fortsatt ikke kan aktivere det, kan du midlertidig slette innstillingene her for å prøve. 3. Tøm cachenNår innstillingene er fullført, må du tømme cachen for at innstillingene skal tre i kraft. Rens cachen og minnecachen, og hvis du setter postcachen, må du rense cachen i databasen (tømme den tilsvarende cache-databasen, eller vente til cachen feiler). På dette tidspunktet er Discuz https vellykket aktivert, og selvfølgelig, når man åpner noen sider, kan låsen bli krysset. Fordi annet http-innhold lastes inn på siden. Det kan være statistikkkoder, QQ-delingskoder, QQ-visningsavatarer osv., som foreløpig ikke tilbyr https-protokoll, så de kan ikke aktiveres. Bare vent på at Discuz skal støtte https videre.
|