|
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: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopya koduDeğiştirildi: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Kopya koduuc_server/avatar.php (yaklaşık 13. satır): Bul: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Kopya koduDeğiştirildi: - 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 koduDeğ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 temizleyinAyarlar 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.
|