Opciones para SSL en WordPress

Con el enfoque cada vez mayor en la seguridad web, los certificados SSL han comenzado a convertirse en una práctica común al configurar sitios web. 

Este artículo le mostrará cómo implementar SSL en su sitio web de WordPress, pero no entrará en detalles sobre cómo comprar y configurar certificados con su servidor web, ya que esto cambia de proveedor a proveedor.. 

Dicho esto, la mayoría de los hosts web venden e instalan certificados SSL para sus clientes por una tarifa relativamente pequeña. Para realizar cualquiera de los cambios descritos en este artículo, deberá tener un certificado SSL configurado en su servidor web..

Que es SSL?

SSL.com describe SSL como:

SSL (Secure Sockets Layer) es la tecnología de seguridad estándar para establecer un enlace cifrado entre un servidor web y un navegador. Este enlace garantiza que todos los datos transmitidos entre el servidor web y los navegadores permanezcan privados e integrales..

Por qué usar SSL?

Seguridad

No hay tal cosa como ser "demasiado seguro". SSL es ahora más fácil y más asequible que nunca de implementar. Si tiene un sitio web de comercio electrónico o está procesando datos de usuario, es esencial. SSL tampoco es solo para sitios web de comercio electrónico, absolutamente cualquier sitio web puede usarlo.

Confianza

Tener un certificado SSL válido es una buena señal de confianza para enviar a los visitantes de su sitio web. Muchos usuarios ahora buscarán https en la barra de direcciones de su navegador.

SEO

Esto viene de la mano con la confianza: Google ahora ha dicho que están empezando a usar SSL como una señal de clasificación..

Un rápido descargo de responsabilidad

Como siempre, con cualquier cambio en un sitio web, primero debe realizar una copia de seguridad completa y trabajar en un sitio web provisional antes de realizar cambios en un sitio web en vivo..

Asegurando el administrador de WordPress

Ser capaz de asegurar el back-end de WordPress es en realidad una característica integrada en el núcleo de WordPress. Para habilitar la opción, deberá editar su wp-config.php archivo que se encuentra en la raíz de su instalación de WordPress. Es importante hacer siempre una copia de seguridad de este archivo antes de editarlo, ya que contiene datos cruciales que permiten que su instalación de WordPress funcione..

Una vez editado este archivo, el FORCE_SSL_ADMIN constante necesita ser configurado para cierto. El código completo se ve así:

define ('FORCE_SSL_ADMIN', verdadero);

Una vez que se ha agregado esta línea (se puede agregar en la parte inferior de la wp-config.php archivo) asegúrese de guardar el archivo. Una actualización debería mostrar que ahora se está cargando a través de HTTPS.

SSL usando el complemento HTTPS de WordPress

WordPress HTTPS es una opción popular entre los usuarios que desean usar SSL en su sitio de WordPress. El complemento ofrece una manera fácil de forzar SSL desde dentro del administrador de WordPress. Es más útil si desea proteger solo ciertas partes de su sitio web (publicaciones o páginas), pero también puede usarse para proteger todo su sitio y puede eliminar elementos inseguros automáticamente..

Para instalar el complemento, desde el panel de WordPress, vaya a Complementos> Agregar nuevo - luego busque "WordPress HTTPS" y haga clic en "Instalar".

Asegurar mensajes / páginas individuales

Una vez instaladas, cada publicación / página tendrá un metabox personalizado que le brinda la opción de asegurar la publicación y (opcionalmente) cualquier publicación secundaria. Comprueba qué opción se aplica a ti y guarda tu publicación. Esta publicación (y las publicaciones secundarias si la verificó) ahora se publicará a través de HTTPS.

Asegurar todo el sitio

La seguridad de todo el sitio se puede hacer desde la página de configuración de WordPress HTTPS. Al hacer clic en el icono del menú HTTPS de WordPress en el panel de WordPress, aparecerá la página de configuración. Voy a revisar la configuración más común:

  • Forzar la administración de SSL: Esta es una casilla de verificación, si ya ha seguido la sección "Protección del administrador de WordPress" de este artículo, se marcará de forma predeterminada. Si no lo ha hecho, al marcar esto se asegurará la administración de WordPress.
  • Forzar SSL Exclusivamente: Si marca esto, cualquier página que no haya dicho que use SSL se redireccionará a HTTP estándar.
  • Eliminar elementos inseguros: Si marca esta opción, eliminará todos los elementos de la página que no sean accesibles a través de HTTPS. La desventaja de esta configuración es que puede romper los complementos para depender de recursos externos, use esto con precaución.

Finalmente, cerca de la parte inferior de esta página hay un campo de texto llamado "Filtros de URL". Esta parte le permite proteger secciones de su sitio web en función de la URL (también acepta expresiones regulares). El ejemplo que proporciona el complemento aquí es si desea asegurar todas las URL que comienzan con /almacenar/

Para ello deberías escribir /almacenar/ en el cuadro de texto y haga clic en "Guardar cambios". Para cada nuevo filtro que cree, deberá comenzar una nueva línea. La configuración de "Filtros seguros" también se puede usar para hacer que el complemento asegure todo su sitio web. Solo agregue un filtro que sea una barra diagonal (/). Ahora, cualquier persona que intente acceder mediante HTTP será redirigida a HTTPS. También es una buena idea cambiar la configuración estándar de su URL de WordPress si está sirviendo todo su sitio web a través de HTTPS. Esto se explica en la siguiente sección del artículo..

Actualizar: Los usuarios han reportado problemas con este complemento y WordPress 4.0. Se recomienda que no use esta solución hasta que se resuelvan estos problemas. Vea a continuación una solución alternativa de plugin..

SSL usando el complemento de seguridad de iThemes

iThemes Security es uno de los complementos de seguridad de WordPress más populares disponibles. Tiene muchas características listas para usar para proteger su sitio de WordPress, incluida la opción de usar HTTPS.

Advertencia: Este complemento es muy poderoso y algunas de las configuraciones pueden tener la capacidad de bloquear su sitio web. Para la configuración básica del complemento te recomiendo que veas el video oficial de iThemes.

Una vez que haya instalado y configurado el complemento (vea el video anterior), diríjase a su panel de WordPress, haga clic en la pestaña "Seguridad" y luego en el enlace "Configuración".

En el menú desplegable "Ir a", haga clic en "Capas de sockets seguros (SSL)" para acceder a la sección correcta de la configuración..

Hay tres configuraciones en esta sección:

  1. Front End SSL Mode: este menú desplegable tiene tres opciones:
  • Apagado - sin SSL front-end
  • Por contenido: puede elegir publicaciones específicas para asegurar por SSL
  • Todo el sitio: toda la parte delantera está asegurada
  • Forzar SSL para iniciar sesión: al marcar esta casilla, todos los inicios de sesión se servirán a través de HTTPS
  • Forzar SSL para el cuadro de mandos: al marcar esta casilla forzará a su tablero de WordPress a usar HTTPS
  • La parte más útil del complemento es la capacidad de asegurar contenido específico en el front-end; Si desea asegurar todo el sitio web, entonces la solución .htaccess es probablemente la apuesta más segura..

    Una vez que haya realizado sus opciones aquí, asegúrese de hacer clic en el botón "Guardar todos los cambios".

    Si ha elegido la opción "por contenido", ahora verá una casilla de verificación dentro del metabox de publicación en las publicaciones. Simplemente marque esto y haga clic en "Actualizar" para asegurar esta página.

    Las limitaciones de usar la seguridad de iThemes para SSL es que no permite comodines, por lo que no puede crear reglas generales.

    SSL usando código

    Este método es bueno para cualquier persona que quiera servir todo su sitio a través de HTTPS. Esencialmente, lo que debemos hacer aquí es redirigir el tráfico de HTTP a HTTPS, utilizando el código 301 (movido permanentemente). Esto se puede hacer con PHP pero mi método preferido es usar .htaccess. Para que esta solución funcione, necesitará un host Apache con mod_rewrite habilitado: la mayoría de los hosts de Linux lo están, pero pregúntele a su host antes de realizar cambios.

    Antes de hacer cualquier .htaccess cambios, hay algunas configuraciones de WordPress que necesitamos cambiar. Desde el panel de WordPress, vaya a Configuración> General. Debajo de "Dirección de WordPress (URL)" y "Dirección del sitio (URL)", debe modificar la dirección web, de modo que en lugar de http://www.yourdomain.com dice https://www.yourdomain.com (tenga en cuenta la https). Una vez hecho esto, desplácese hacia abajo y haga clic en el botón "Guardar cambios". Esto le dice a WordPress que use HTTPS en todas las URL, pero aún no impide que las personas accedan a su sitio web mediante HTTP. Aquí es donde el .htaccess el archivo viene en.

    Si tiene los enlaces permanentes habilitados, entonces ya tendrá un .htaccess Archivo presente en el directorio raíz de su instalación de WordPress. Si no lo hace, tendrá que hacer una: para hacer esto, cree un nuevo archivo con el nombre .htaccess - Este archivo no debe tener otro nombre o extensión.. .htaccess Los archivos son archivos de puntos o archivos ocultos, por lo que es posible que necesite habilitar la visualización de archivos ocultos en su sistema operativo para verlos..

    A continuación, abre tu .htaccess archivo con su editor de texto de elección. Si no tiene los enlaces permanentes habilitados, entonces su .htaccess archivo puede estar en blanco. Si tiene los enlaces permanentes habilitados, es posible que ya tenga algún código allí que se parece a esto:

    # COMENZAR WordPress  RewriteEngine On RewriteBase / secure / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /secure/index.php [L]  # FIN WordPress

    Vamos a añadir un poco más de código aquí. Directamente sobre el código estándar de WordPress, pegue lo siguiente:

    # Comenzar HTTPS  RewriteEngine On RewriteCond% SERVER_PORT 80 RewriteRule ^ (. *) $ Https://www.yourdomain.com/$1 [R, L]  # END HTTPS

    Recuerde reemplazar https://www.yourdomain.com/ con su nombre de dominio real. Si tienes un espacio en blanco .htaccess archivo luego simplemente coloque el código directamente en el archivo.

    Las primeras y últimas líneas de este código con el símbolo de hash (#) son comentarios y están ahí para hacer que el código sea más fácil de leer. los está comprobando que el mod_rewrite el módulo está habilitado ya que este código se basa en mod_rewrite para la redirección. Entonces, nos aseguramos de que el RewriteEngine esté activado como necesitamos el motor de reescritura para crear nuestros redireccionamientos. A continuación, establecemos una condición para nuestra reescritura que significa que la regla que creamos solo se ejecutará si se accede a ella en el puerto 80 (el puerto 80 es el puerto HTTP estándar). Finalmente, la RewriteRule está redirigiendo a los usuarios a la versión HTTPS del dominio.

    Para probar que esto funciona correctamente, intente visitar su sitio utilizando una URL HTTP. Si cambia automáticamente a HTTPS, entonces esto está funcionando correctamente..

    ¿Qué solución debemos usar??

    No hay una respuesta correcta o incorrecta aquí. Podría argumentarse que confiar en un complemento para una parte tan integral de su sitio web puede no ser la mejor idea, ya que si el complemento está deshabilitado, eliminado o tiene una mala actualización, entonces podría tener algunas consecuencias graves para su sitio web.. 

    Dicho esto, el plugin WordPress HTTPS tiene una buena reputación con muchas descargas y es naturalmente de código abierto. Usar el complemento HTTPS de WordPress es la forma más fácil si desea configurar solo ciertas áreas de su sitio web para que sean HTTPS.

    Por otro lado, el método de código es agradable y simple si se siente cómodo haciendo algunas ediciones simples a los archivos y es un método confiable para hacer que todo su sitio web se ejecute a través de HTTPS..

    Algunos Desarrolladores Gotchas

    Para que el SSL de su sitio web sea válido, todo su contenido debe enviarse también a través de SSL. Esto incluye, pero no se limita a scripts, fuentes, hojas de estilo, incrustaciones e imágenes. Algunas agencias de publicidad aún no envían contenido a través de HTTPS, por lo que si ese es el caso no tienen muchas opciones, aunque es posible tener algunas páginas HTTPS y otras HTTP como se explicó anteriormente en el artículo..

    Para evitar este dolor de cabeza, puede utilizar una URL relativa al protocolo. Por ejemplo, digamos que estamos solicitando la popular fuente web de Google 'Open Sans':

    ¿Se nota la falta de HTTP o HTTPS en la parte frontal de esa URL? lo que esto hace es solicitar el activo utilizando el mismo protocolo que la página. Por lo tanto, si está utilizando HTTPS, solicitará automáticamente la versión HTTPS de la fuente web. Si la versión HTTPS no existe, entonces usará HTTP. Hay algunas pequeñas advertencias a esta técnica, como se explica en un artículo de Paul Irish. Para la mejor parte, esto funciona muy bien y solucionará algunos dolores de cabeza, también funciona en CSS.

    Depuración de errores de HTTPS

    Los errores de HTTPS a menudo son causados ​​por la página que también sirve contenido no HTTPS. Para averiguar el contenido ofensivo, Google Chrome se puede utilizar para depurar.

    Para identificar una página defectuosa, en Google Chrome, verá un triángulo amarillo sobre el candado en la barra de direcciones. Al hacer clic en esto se mostrará el error exacto como se muestra a continuación:

    Para averiguar el contenido ofensivo en esta página para que se pueda corregir, seleccione Ver >> Desarrollador >> Consola de JavaScript. Ahora debería ver algunos errores, como los que se muestran a continuación:

    Este error le muestra el archivo exacto que está causando el problema (en este caso http://en.support.files.wordpress.com/2008/12/def-avatar.png) y el número de línea en el que aparece el contenido ( 316). Este contenido simplemente tendría que cambiarse a HTTPS (siempre que el contenido del servidor sea compatible con HTTPS) o usar una URL relativa al protocolo como se explicó anteriormente en este artículo..

    Conclusión

    Ahora podrá tomar una decisión sobre cuál es el mejor método para utilizar HTTPS en su sitio web de WordPress e implementar su solución preferida..