Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 14855|Odpowiedź: 2

[Wiedza o budowaniu stron internetowych] O Discuz! (X3.1) Jak włączyć szyfrowanie https

[Skopiuj link]
Opublikowano 30.05.2015 23:42:13 | | |
Czasy nieustannie się zmieniają, a nasze zapotrzebowanie na bezpieczną komunikację rośnie. W Discuz X3 jest powiedziane, że https jest obsługiwany, więc po otrzymaniu certyfikatu SSL dodałem SSL na stronę od razu, gdy go otrzymałem. Ale po dodaniu odkryłem, że wiele miejsc nie używa linków do https, więc zacząłem sprawdzać kod źródłowy Discuz, żeby zobaczyć, co poszło nie tak.
1. Certyfikat SSL i konfiguracja
Przede wszystkim, aby włączyć SSL, musisz mieć certyfikat, prawda? Niezależnie od tego, czy jest wydany przez zwykłego CA, czy podpisany przez samą osobę, nie da się mieć pewności. Jeśli nie, najpierw złóż wniosek o taką aplikację. (Proszę, wyszukaj konkretną metodę w Google, nie będę tu wchodził w szczegóły)
2、Discuz! Optymalizacja2.1. Modyfikacja procedur
Z Discuz! X3 dodało wsparcie dla https, a jeśli użyjesz https, aby uzyskać dostęp do forum, linki na forum staną się https. Jeśli zauważysz, że większość linków już korzysta z https, oznacza to, że Discuz automatycznie go rozpoznał i możesz pominąć ten krok i przejść od razu do następnego.
Discuz używa $_SERVER['HTTPS'] do oceny SSL, ale z powodu mojego problemu z architekturą VPS (nginx+php-fpm) nie da się go rozpoznać w ten sposób, więc muszę wprowadzić pewne zmiany w programie Discuz (używając $_SERVER['SERVER_PORT']).
źródło/klasa/discuz/discuz_application.php (ok. wers 187):
Znajdź:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Skopiuj kod
Zmodyfikowane do:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Skopiuj kod
uc_server/avatar.php (około linia 13):
Znajdź:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Skopiuj kod
Zmodyfikowane do:
  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'], '/'))));
Skopiuj kod
Po modyfikacji zaktualizowałem pamięć podręczną i zauważyłem, że większość linków stała się https.
2.2. Tła
Są też ustawienia w tle, które mogą kolidować z korzystaniem z https
W tle >webmaster > UCenter ustawia adres dostępu > UCenter, który jest modyfikowany tak, aby zaczynał od https
UCenter > Zarządzanie aplikacjami > Główny adres URL aplikacji jest modyfikowany tak, aby zaczynał się od https
Dodatkowo, niektóre ustawienia w tle > globalnych > domen mogą również unieważniać https; jeśli wykonałeś wcześniejsze kroki i nadal nie możesz go włączyć, możesz tymczasowo usunąć ustawienia tutaj, aby spróbować.
3. Wyczyść pamięć podręczną
Po zakończeniu ustawień musisz wyczyścić pamięć podręczną, aby ustawienia zaczęły działać.
Wyczyść pamięć podręczną i pamięć podręczną, a jeśli ustawisz pamięć post, musisz wyczyścić pamięć podręczną w bazie danych (opróżnić odpowiednią bazę cache albo poczekać, aż pamięć się nie uda).
W tym momencie Discuz https jest pomyślnie włączony, a oczywiście przy dostępie do niektórych stron blokada może zostać przełamana. Ponieważ na stronie ładowana jest inna zawartość http. Mogą to być kody statystyczne, kody QQ do udostępniania, awatary QQ show itp., które na razie nie oferują protokołu https, więc nie można ich włączyć. Poczekaj tylko, aż Discuz będzie dalej wspierał https.





Poprzedni:Kolekcja Nowych Produktów Konferencji Google I/O 2015
Następny:Samo-startup Nginx zakończył się niepowodzeniem
Opublikowano 01.06.2015 17:05:36 |
Forum chce umożliwić technologię transmisji zaszyfrowanej przez SSL
Opublikowano 03.01.2018 13:57:42 |
Bezpośrednie $_G['isHTTPS'] = prawdziwe;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com