Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 14855|Jawab: 2

[Pengetahuan Membangun Situs Web] Tentang Discuz! (X3.1) Cara mengaktifkan enkripsi https

[Salin tautan]
Diposting pada 30/05/2015 23.42.13 | | |
Waktu terus berkembang, dan permintaan kita akan komunikasi yang aman meningkat. Di Discuz X3, dikatakan bahwa https didukung, jadi setelah saya mendapatkan sertifikat SSL, saya menambahkan SSL ke situs web segera setelah saya mendapatkannya. Tetapi setelah menambahkannya, saya menemukan bahwa banyak tempat tidak menggunakan tautan https, jadi saya mulai memeriksa kode sumber Discuz untuk melihat apa yang salah.
1. Sertifikat & konfigurasi SSL
Pertama-tama, untuk mengaktifkan SSL, Anda harus memiliki sertifikat, bukan? Apakah itu dikeluarkan oleh CA biasa atau ditandatangani sendiri, tidak mungkin untuk tidak memiliki kepastian. Jika tidak, ajukan permohonan terlebih dahulu. (Silakan google metode spesifiknya, saya tidak akan membahas secara rinci di sini)
2、Diskusikan! Dioptimalkan2.1. Penyesuaian prosedur
Dari Diskus! X3 telah menambahkan dukungan untuk https, dan jika Anda menggunakan https untuk mengakses forum, tautan di forum akan menjadi https. Jika Anda menemukan bahwa sebagian besar tautan sudah menggunakan https, itu berarti Discuz telah mengenalinya secara otomatis, dan Anda dapat melewati langkah ini dan langsung ke langkah berikutnya.
Discuz menggunakan $_SERVER['HTTPS'] untuk menilai SSL, tetapi karena masalah arsitektur VPS saya (nginx+php-fpm), itu tidak dapat dikenali dengan cara ini, jadi saya perlu membuat beberapa penyesuaian pada program Discuz (menggunakan $_SERVER['SERVER_PORT']).
sumber/kelas/discuz/discuz_application.php (c. baris 187):
Menemukan:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Salin kode
Dimodifikasi menjadi:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Salin kode
uc_server/avatar.php (sekitar baris 13):
Menemukan:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Salin kode
Dimodifikasi menjadi:
  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'], '/'))));
Salin kode
Setelah modifikasi, saya memperbarui cache dan menemukan bahwa sebagian besar tautan menjadi https.
2.2. Pengaturan latar belakang
Ada juga pengaturan di latar belakang yang dapat mengganggu penggunaan https
Di latar belakang, >webmaster > UCenter mengatur alamat akses UCenter >, yang dimodifikasi untuk dimulai dengan https
UCenter > Manajemen Aplikasi > URL utama aplikasi dimodifikasi untuk dimulai dengan https
Selain itu, beberapa pengaturan di latar belakang > pengaturan nama domain global > juga dapat membatalkan https, jika Anda telah mengambil langkah sebelumnya dan masih tidak dapat mengaktifkannya, Anda dapat menghapus pengaturan di sini untuk sementara untuk dicoba.
3. Hapus cache
Setelah pengaturan selesai, Anda perlu menghapus cache agar pengaturan diterapkan.
Bersihkan cache dan cache memori, dan jika Anda mengatur cache posting, Anda perlu membersihkan cache di database (kosongkan database cache yang sesuai, atau tunggu hingga cache gagal).
Pada titik ini, Diskusikan https berhasil diaktifkan, dan tentu saja, saat mengakses beberapa halaman, kunci dapat dilewati. Karena konten http lainnya dimuat di halaman. Mungkin kode statistik, kode berbagi QQ, avatar pertunjukan QQ, dll., yang tidak menyediakan protokol https untuk saat ini, sehingga tidak dapat diaktifkan. Tunggu saja Discuz untuk mendukung https lebih lanjut.





Mantan:Konferensi Google I/O 2015 Koleksi Produk Baru
Depan:Startup mandiri Nginx gagal
Diposting pada 01/06/2015 17.05.36 |
Forum ini ingin mengaktifkan teknologi transmisi terenkripsi SSL
Diposting pada 03/01/2018 13.57.42 |
Langsung $_G['isHTTPS'] = true;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')))));
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com