|
Los tiempos están en constante evolución y nuestra demanda de comunicación segura está en aumento. En Discuz X3 se dice que https es compatible, así que después de obtener el certificado SSL, añadí SSL a la web en cuanto lo obtuve. Pero después de añadirlo, descubrí que muchos sitios no usaban enlaces https, así que empecé a revisar el código fuente de Discuz para ver qué había fallado. 1. Certificado y configuración SSLEn primer lugar, para habilitar la SSL, debes tener un certificado, ¿verdad? Ya sea emitida por una CA regular o firmada por uno mismo, no es posible no tener certeza. Si no, solicita primero uno. (Por favor, busca en Google el método específico, no entraré en detalles aquí) 2、¡Discúz! Optimizado2.1. Ajuste del procedimientoDe Discuz! X3 ha añadido soporte para https, y si usas https para acceder al foro, los enlaces en el foro se convertirán en https. Si ves que la mayoría de los enlaces ya usan https, significa que Discuz lo ha reconocido automáticamente, y puedes saltarte este paso y pasar directamente al siguiente. Discuz usa $_SERVER['HTTPS'] para juzgar SSL, pero debido a mi problema de arquitectura VPS (nginx+php-fpm), no puede reconocerse de esta manera, así que necesito hacer algunos ajustes en el programa Discuz (usando $_SERVER['SERVER_PORT']). Fuente/Clase/Discus/discuz_application.php (c. línea 187): Descubrir: - $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Copiar códigoModificado a: - $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Copiar códigouc_server/avatar.php (aprox. línea 13): Descubrir: - define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Copiar códigoModificado a: - 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'], '/'))));
Copiar códigoTras la modificación, actualicé la caché y descubrí que la mayoría de los enlaces se volvieron https. 2.2. Configuración en segundo planoTambién hay configuraciones en segundo plano que pueden interferir con el uso de https En segundo plano, el >webmaster > UCenter establece la dirección de acceso > UCenter, que se modifica para comenzar con https UCenter > Gestión de Aplicaciones > La URL principal de la aplicación se modifica para comenzar con https Además, algunos ajustes en segundo plano > globales de > de dominio también pueden invalidar https; si has seguido los pasos anteriores y aún no puedes activarlo, puedes eliminar temporalmente la configuración aquí para intentarlo. 3. Borrar la cachéUna vez completadas las configuraciones, tienes que borrar la caché para que la configuración se active. Limpia la caché y la caché de memoria, y si configuras la caché de post, necesitas limpiar la caché en la base de datos (vaciar la base de datos correspondiente o esperar a que falle). En este punto, Discuz https está activado correctamente y, por supuesto, al acceder a algunas páginas, el bloqueo puede estar cruzado. Porque se carga otro contenido http en la página. Puede ser códigos estadísticos, códigos de compartición QQ, avatares de exhibición QQ, etc., que no proporcionan protocolo https por el momento, por lo que no pueden estar habilitados. Solo espera a que Discuz siga soportando https.
|