• ¡Bienvenido a XenFácil!

    Estás viendo el sitio como Invitado. Para poder participar en este sitio

    y obtendrás privilegios adicionales, acceso a otras áreas y mucho mas.

    ¡Es gratis!


    ¿Ya eres miembro? Inicia sesión
Icono de recurso

Tutorial Como implementar SSL para tráfico seguro de HTTP (HTTPS)

Autor
Brogan
URL de XenForo
https://xenforo.com/community/resources/how-to-implement-ssl-to-secure-http-traffic-https.5425/
Es de esperar que esta guía explique todos los pasos necesarios para cambiar una instalación XF de HTTP a HTTPS.
Entonces, por ejemplo, en vez de que la URL del sitio sea http://xenforo.com/community/, será
Rich (BB code):
https://xenforo.com/community/.

¿Qué es HTTPS?
Essencialmente, HTTPS es una versión segura de HTTP y aunque no se precisa para los foros, existe un impulso general hacia esta dirección debido a una mayor seguridad y a que Google utiliza ahora HTTPS como una señal de clasificación y es relativamente simple y barato (incluso gratis) de implementar.

Más información y lectura está disponible en estos enlaces:
HTTPS - Wikipedia
Secure your site with HTTPS - Search Console Help
Official Google Webmaster Central Blog: HTTPS as a ranking signal

Suena bien, ¿Cómo lo implemento?
Es un proceso en dos pasos.
El servidor precisa ser configurado para soportar HTTPS y servir el sitio sobre él y la instalación de XF precisa actualizarse para asegurar que es compatible.

Configurar el servidor
El primer paso es instalar un certificado en el servidor.

Instalar un certificado
Existen varias vías para hacerlo, con diferentes niveles de coste. Se puede:
  • adquirir un certificado (coste variable)
  • utilizar un certificado libre de algún sitio como Let's Encrypt - Free SSL/TLS Certificates (hay disponibles otros proveedores)
  • utilizar un certificado provisto por tu alojamiento (si está disponible)
  • utilizar un certificado provisto por algún servicio como Cloudflare (si está disponible)
Esta guía no pretende entrar en detalles sobre la instalación de un certificado ya que su implementación específica depende de muchas circunstancias.
Si no se está seguro, hay que contactar con el administrador del sistema o alojamiento o publicar un tema relativo a este recurso pudiéndose dar sopoirte por la comunidad.

Forzar HTTPS
Una vez instalado el certificado, el paso siguiente es forzar la utilización de HTTPS, de forma que cualquier visitante que esté navegando cualquier URL y utilizando HTTP, se enrute a su equivalente HTTPS.
Si se tiene un servidor Apache, esto se hace agregando lo siguiente en el archivo .htaccess:
Rich (BB code):
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Dependiendo sel servidor y de la configuración exacta puede preferirse/ser necesaria una variación.
Adviértase que cualquier regla de reescritura personalizada debe estar antes que las reglas de reescritura de XenForo.

Un .htaccess etándar con estas líneas agregadas lucirá algo así como:
Rich (BB code):
#    Mod_security can interfere with uploading of content such as attachments. If you
#    cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security>
#    SecFilterEngine Off
#    SecFilterScanPOST Off
#</IfModule>

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 406 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 503 default

<IfModule mod_rewrite>
    RewriteEngine On

    #    Si se tienen problemas con las reglas de reescritura, elimínense los "#" del
    #    comienzo de la línea de "RewriteBase" siguiente. También deberá cambiarse la ruta
    #    de la reescritura para que indique la ruta de la instalación de XenForo.
    #RewriteBase /xenforo

    #    Puede necesitarse esta línea para activar la edición WebDAV con PHP como CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
</IfModule>
De nuevo, esto difiere según el servidor web por lo que cada uno deberá observar sus circunstancias específicas.

Ocasionalmente, un servidor puede no configurar automáticamente HTTPS. Habrá que comprobar en /admin.php?tools/phpinfo y mirar esta entrada en la sección Variables de PHP:
server_https-png.146256

Si no está 'on', deberá configurarse agregando esto al final del archivo library/config.php:
PHP:
$_SERVER['HTTPS']='on';
Por algo así:
PHP:
<?php

$config['db']['host']='localhost';
$config['db']['port']='3306';
$config['db']['username']='';
$config['db']['password']='';
$config['db']['dbname']='';

$config['superAdmins']='1';

$_SERVER['HTTPS']='on';

Esto es todo lo que concierne al servidor.
Los demás pasos son relativos a cambios necesarios en la instalación de XF en sí misma.

Configurar la instalación de XF
Existen varias acciones y cambios que debemos adoptar, Aunque ellos dependerán en cierta medida de la instalación y de cómo se utilice el foro. Si tras hacerlos el sitio no aparece como seguro, hay que utilizar el inspector del navegador para comprobar qué contenido se carga a través de HTTP. Puede accederse típicamente al inspector del navegador pulsando F12 y haciendo clic en la pestaña [Consola].

URL del foro
La URL del foro es uno de los cambios que deben hacerse en todas las instalaciones.
Esto se cambia en PCA -> Opciones -> Información básica del foro: URL del foro.
Simplemente hay que cambiar la URL existente a su equivalente HTTPS, ej. de http://mysite a https://mysite.
Aplíquese lo mismo para cualquier otra URL de la página: la URL de la página principal, la URL de política de privacidad, la URL de términos y reglas y la URL de contacto si se han configurado URLs personalizadas.

Proxy de imagen
Si está permitido incrustar imágenes desde servidores remotos en los mensajes, debe activarse el proxy de imagen.
Si no, con contenido mezclado, se recibirán advertencias al cargar la página con imágenes no HTTPS.
Puede activarse en PCA -> Opciones -> Mensajes -> Proxy de imágenes y enlaces: Proxy de imágenes.
Existe más información disponible sobre esta característica en: XF 1.3 - EXIF Rotation, ACP Searching, Proxying and Change Logging[/URL]"]XF 1.3 - Rotación EXIF, búsqueda en el PCA, Poner en proxy y cambios de registros</a>

Adviértase que no existe necesidad específica de activar el proxy de enlaces, al que concierne HTTPS, ya que estos no incrustan contenido por la misma vía que las imágenes.

Sitios Media
Otro contenido incrustado que precisa cambiarse concirne a los sitios media, ya que incrustan vídeos de YouTube, Vimeo, Facebook, etc.
Están definidos en el PCA -> Códigos BB de sitios media.

Los sitios media predeterminados que vienen con XF, como Dailymotion, Facebook, LiveLeak, Vimeo, y YouTube ya son HTTPS y pueden incrustarse igualmente sin problemas.
La última versión para incrustar códifo de estos sitios es como sigue:

Dailymotion
Insertar CODE, HTML o PHP:
<iframe frameborder="0" width="500" height="300" src="https://www.dailymotion.com/embed/video/{$id}?width=500&amp;hideInfos=1"></iframe>
Facebook
Insertar CODE, HTML o PHP:
<div class="fb-video" data-href="https://www.facebook.com/video.php?v={$id}" data-width="500"><div class="fb-xfbml-parse-ignore"><a href="https://www.facebook.com/video.php?v={$id}">https://www.facebook.com/video.php?v={$id}</a></div></div>
LiveLeak
Insertar CODE, HTML o PHP:
<iframe width="640" height="360" src="https://www.liveleak.com/ll_embed?i={$id}" frameborder="0" allowfullscreen></iframe>
Vimeo
Insertar CODE, HTML o PHP:
<iframe src="https://player.vimeo.com/video/{$id}" width="500" height="300" frameborder="0"></iframe>
YouTube
Insertar CODE, HTML o PHP:
<iframe width="500" height="300" src="https://www.youtube.com/embed/{$id}?wmode=opaque" frameborder="0" allowfullscreen></iframe>

Metacafe no es HTTPS y no se puede incrustar, de otro modo la mezcla de contenido seguro/inseguro haría advertir al navegador al cargar la página con contenido incrustado de este sitio.

Cualquier incrustación hecha de sitios que no utilizan HTTPS habrá que eliminarla o desactivarla, bien eliminado el sitio media en el PCA y/o editando el mensaje para eliminarlo.

Lo mismo se aplica a cualquier otro sitio media implementado, bien manualmente bien por medio de complementos de terceras partes.

Imágenes del estilo
Cualquier imagen de cualquier estilo que esté puesta en el código utilizando HTTP/URLs externas, como por ejemplo el logo, precisará de una actualización. Por lo general, se recomienda alojar siempre localmente las imágenes en el propio servidor y utilizar una ruta relativa a ellas - La ruta de la imagen del logo de cabecera deberá lucir algo así como @imagePath/images/logo.png.

Publicidad
Al igual que con las imágenes y vídeo incrustado, cualquier publicidad deberá ser de un proveedor que sirva a través de HTTPS. Para la mayoría del personal, suelen ser Google AdSense y DoubleClick. Si nuestro proveedor no utiliza HTTPS no deberás utilizarlo hasta que cambie a HTTPS, o cambiar de proveedor.
Si actualmente se tiene implementado AdSense, hay que asegurarse de que la rutina utiliza HTTPS o no tiene protocolo, algo así como:
Insertar CODE, HTML o PHP:
<script src="//pagead2.googlesyndication.com/pagead/show_ads.js"></script>

Contenido alojado remotamente
Cualquier otro contenido alojado remotamente, tal como logos, imágenes, rutinas personalizadas, etc. debe servirse sobre HTTPS.
Por lo general, siempre es mejor tener alojado localmente el contenido, en vez de tener el logo del sitio alojado en algo así como Imagebucket.

Sitemap
Any additional URLs entered in the PCA -> Opciones -> Generación XML del mapa del sitio: URLs extra del mapa del sitio should be updated.
El mapa del sitio debe reconstruirse mediante PCA -> Herramientas -> Reconstruir cachés: Reconstruir XML del mapa del sitio

Avisos, páginas de ayuda, suscripciones de usuario, propiedades del estilo, plantillas
Cualquier URL puesta en el código en avisos, páginas de ayuda personalizadas, descripciones de suscripciones, imágenes de propiedades del estilo o plantillas deberán actualizarse.

Advertencias
Las advertencias que se establecen para iniciar una conversación deben actualizarse si la URL del sitio está presente en el texto de la conversación.

Actualizar el contenido existente
Aunque no es necesario, algunas personas prefieren actualizar los enlaces existentes en su propio sitio de publicaciones y conversaciones, una vez que han cambiado a HTTPS.
La vía más sencilñla de hacerlo es utilizar un programa como phpMyAdmin y ejecutar consultas sobre varias tablas.
Para contenidos de mensajes, la consulta adoptará el formato:
Insertar CODE, HTML o PHP:
UPDATE xf_post SET message = REPLACE(message,'[color="#ff8000"][b]contenido_actual[/b][/color]','[color="#ff8000"][b]nuevo_contenido[/b][/color]');
En donde contenido_actual es el texto del mensaje existente y nuevo_contenido es por el que se cambia.

Un ejemplo específico sería así, cuando este sitio cambió a HTTPS:
Insertar CODE, HTML o PHP:
UPDATE xf_post SET message = REPLACE(message,'http://xenforo.com/','https://xenforo.com/');
Adviértase que esto solo se utiliza para cambiar los enlaces del sitio que se está cambiando a HTTPS (ej. nuestro propio sitio).
Si no fuera posible cambiar todos los enlaces de los mensajes a HTTPS porque no todos los sitios funcionan sobre HTTPS, el hacerlo podría causar que fallara alguno de ellos.

Una consulta similar puede hacerse para las conversaciones:
Insertar CODE, HTML o PHP:
UPDATE xf_conversation_message SET message = REPLACE(message,'current_content','new_content');
Es extremadamente importante que antes de ejecutar las consultas sobre la base de datos, el hacer primero una copia de seguridad, pàra poder revertir en caso necesario por cualquier problema.


Pasos adicionales
Pueden ser necesarias otras acciones dependiendo de las opciones y funcionalidades activadas en la instalación de XF, así como en sitios externos. Algunas de ellas se listan a continuación.

PayPal
Si los pagos de usuario están implementados, hay que actualizar la URL de notificación de IPN en la cuenta de PayPal.

Cuentas externas
Si el registro e inicio de sesión de los usuarios usa Facebook, Twitter, Google, etc. hay que asegurarse de actualizarlas a las URLs correctas.
También merece la pena actualizar cualquier otra cuenta externa relacionada con el sitio como StopForumSpam, Project Honey Pot, etc., según sea necesario.

Robots.txt
Si existe una entrada para el mapa del sitio en el archivo robots.txt (ej. [URL='https://xenforo.com/robots.txt"]https://xenforo.com/robots.txt), también hay que asegurarse de actualizarla.

Enlaces a sitios externos
Finalmente, no hay que olvidarse de actualizar la URL de la página principal de nuestro sitio en otros sitios, como las herramientas de webmaster de Google, Google Analytics (si se tiene), Twitter, Facebook, YouTube y otras cuentas de medios sociales que enlacen a nuestro sitio, otras firmas de foro y enlaces de página de perfil, etc.
Autor
lms
Visitas
2.527
Primer lanzamiento
Última actualización
Votar
5,00 estrella(s) 1 calificaciones

Más recursos de lms

Últimas evaluaciones

Una ayuda muy completa y fácil de seguir que le puede venir bien a todos los que desean implementar un certificado SSL.
Arriba