Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 14855|Respuesta: 2

[Conocimiento sobre la creación de sitios web] ¡Sobre Discuz! (X3.1) Cómo habilitar el cifrado https

[Copiar enlace]
Publicado en 30/5/2015 23:42:13 | | |
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 SSL
En 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 procedimiento
De 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:
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Copiar código
Modificado a:
  1. $_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
Copiar código
uc_server/avatar.php (aprox. línea 13):
Descubrir:
  1. define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Copiar código
Modificado a:
  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'], '/'))));
Copiar código
Tras la modificación, actualicé la caché y descubrí que la mayoría de los enlaces se volvieron https.
2.2. Configuración en segundo plano
Tambié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.





Anterior:Colección de nuevos productos de la Conferencia Google I/O 2015
Próximo:El autoarranque de Nginx falló
Publicado en 1/6/2015 17:05:36 |
El foro quiere habilitar la tecnología de transmisión cifrada SSL
Publicado en 3/1/2018 13:57:42 |
Directo $_G['isHTTPS'] = verdadero;
define('UC_API', strtolower('https://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com