Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 14855|Yanıt: 2

[Web Sitesi Oluşturma Bilgisi] Discuz Hakkında! (X3.1) Https şifreleme nasıl etkinleştirilir

[Bağlantıyı kopyala]
Yayınlandı 30.05.2015 23:42:13 | | |
Zaman sürekli değişiyor ve güvenli iletişim talebimiz artıyor. Discuz X3'te https'in desteklendiği söyleniyor, bu yüzden SSL sertifikasını aldıktan sonra SSL'i aldığım anda siteye ekledim. Ama ekledikten sonra, birçok yerde https bağlantıları kullanılmadığını fark ettim, bu yüzden neyin yanlış gittiğini görmek için Discuz kaynak kodunu kontrol etmeye başladım.
1. SSL sertifikası ve yapılandırma
Öncelikle, SSL'yi etkinleştirmek için bir sertifikanız olmalı, değil mi? Normal bir CA tarafından mı yoksa kendi tarafından mı imzalanıyor mı, kesin olmak mümkün değildir. Eğer yoksa, önce bir tane başvurun. (Lütfen belirli yöntemi Google'da arayın, burada detaylara girmeyeceğim)
2、Discuz! Optimize Edilmiş2.1. Prosedür ayarı
Discuz'dan! X3 https desteği ekledi ve foruma https ile girerseniz, forumdaki bağlantılar https olur. Bağlantıların çoğunun zaten https kullandığını görürseniz, Discuz otomatik olarak https kullanıyor ve bu adımı atlayıp doğrudan bir sonraki adıma geçebilirsiniz.
Discuz SSL'yi değerlendirmek için $_SERVER['HTTPS'] kullanıyor, ancak VPS mimari sorunum (nginx+php-fpm) nedeniyle bu şekilde tanınamıyor, bu yüzden Discuz programında bazı ayarlamalar yapmam gerekiyor ($_SERVER['SERVER_PORT']] kullanarak).
kaynak/sınıf/discuz/discuz_application.php (c. satır: 187):
Bul:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopya kodu
Değiştirildi:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopya kodu
uc_server/avatar.php (yaklaşık 13. satır):
Bul:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kopya kodu
Değiştirildi:
  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'], '/'))));
Kopya kodu
Değişiklikten sonra önbelleği güncelledim ve bağlantıların çoğunun https olduğunu gördüm.
2.2. Arka plan ayarları
Arka planda https kullanımını engelleyebilecek ayarlar da var
Arka planda, >webmaster > UCenter > UCenter erişim adresini ayarlar; bu adres https ile başlayacak şekilde değiştirilir
UCenter > Uygulama Yönetimi > Uygulamanın ana URL'si https ile başlayacak şekilde değiştirilir
Ayrıca, arka plandaki bazı ayarlar > küresel > alan adı ayarları da https'i geçersiz hale getirebilir; önceki adımları attıysanız ve hâlâ etkinleştiremiyorsanız, buradaki ayarları geçici olarak silip deneyebilirsiniz.
3. Önbelleği temizleyin
Ayarlar tamamlandıktan sonra, ayarların etki etmesi için önbelleği temizlemeniz gerekiyor.
Önbelleği ve bellek önbelleğini temizleyin ve post cache'i ayarlarsanız, veritabanındaki önbelleği temizlemeniz gerekir (ilgili önbellek veritabanını boşaltmak ya da önbelleğin arızalanmasını beklemek).
Bu noktada Discuz https başarıyla etkinleştirilmiş ve tabii ki bazı sayfalara erişildiğinde kilitler aşılabilir. Çünkü sayfada diğer http içerikleri yüklenir. Bunlar istatistik kodları, QQ paylaşım kodları, QQ gösteri avatarları gibi olabilir; bunlar şu anda https protokolü sağlamadığı için etkinleştirilemiyorlar. Discuz'un https'i daha fazla desteklemesini bekleyin.





Önceki:2015 Google I/O Konferansı Yeni Ürün Koleksiyonu
Önümüzdeki:Nginx kendi kendine başlatma başarısız oldu
Yayınlandı 1.06.2015 17:05:36 |
Forum, SSL şifreli iletim teknolojisini etkinleştirmek istiyor
Yayınlandı 3.01.2018 13:57:42 |
Doğrudan $_G['isHTTPS'] = doğru;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')))));
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com