https y el certificado
Módulo 3: Dirección, https y usuarios · Tiempo de lectura: 8 minutos
Objetivo de aprendizaje: Después de esta lección podrá configurar un sitio WordPress completamente en https y sabrá qué hacen la dirección de WordPress y la dirección del sitio.
Conceptos clave: TLS, certificado, Let's Encrypt, renovación automática, dirección de WordPress (siteurl), dirección del sitio (home), WP_HOME y WP_SITEURL, HSTS, quedarse bloqueado fuera
Qué hace https
Con https todo entre el navegador y el servidor va cifrado: contraseñas, formularios, cookies, también las páginas normales. Sin https, cualquiera en la misma red (una wifi pública, un router comprometido) puede leer el tráfico e incluso modificar la página. Los navegadores muestran un sitio sin https como "no seguro" y algunas funciones (como la ubicación o la cámara) solo funcionan con https.
El cifrado se llama TLS. Para demostrar que el navegador realmente habla con example.com y no con un intermediario, el servidor tiene un certificado: una prueba digital, firmada por un emisor en el que confían los navegadores. El certificado indica los nombres para los que es válido y hasta cuándo.
Certificados gratuitos y renovación
Let's Encrypt emite certificados gratuitos. Casi todos los proveedores de alojamiento los solicitan automáticamente y también los renuevan automáticamente. Un certificado de Let's Encrypt es válido ahora durante 90 días, y Let's Encrypt ha anunciado que reducirá ese periodo de validez poco a poco hasta 45 días. Renovarlo manualmente, por tanto, no es una opción: debe hacerse de forma automática.
Un certificado de pago no cifra mejor. La diferencia está en el control adicional de la organización (y a veces una garantía). Para la mayoría de los sitios, un certificado gratuito es perfectamente válido.
A qué debe prestar atención:
- El certificado debe cubrir todos los nombres que un visitante pueda escribir:
example.comywww.example.com. También el nombre que solo redirige, porque el navegador comprueba el certificado antes de seguir la redirección. - La renovación automática solo funciona si el DNS apunta a su servidor. Si ha cambiado el DNS o ha puesto un proxy delante (como Cloudflare), compruebe que la renovación sigue funcionando.
- Un registro CAA en el DNS puede determinar qué emisores pueden crear certificados. Si Let's Encrypt no figura ahí, la solicitud fallará (curso de DNS, lección 5.2).
Dos direcciones en WordPress
En Ajustes > Generales encontrará dos direcciones. Parecen innecesariamente duplicadas, pero significan cosas distintas:
| Campo | En la base de datos | Significado |
|---|---|---|
| Dirección de WordPress (URL) | siteurl | Dónde están los archivos de WordPress (wp-admin, wp-includes) |
| Dirección del sitio (URL) | home | La dirección que usan los visitantes |
Normalmente son iguales, por ejemplo ambas https://example.com. Solo difieren si WordPress está instalado en una subcarpeta pero el sitio debe mostrarse en la carpeta raíz.
WordPress construye con estas direcciones todos los enlaces: a páginas, hojas de estilo, imágenes, el escritorio de administración. Si aquí figura http://, WordPress construirá páginas con enlaces http://, incluso si el visitante entra por https. Eso provoca contenido mixto (lección 3.2) y redirecciones de ida y vuelta.
Pasar un sitio a https
Si tiene un sitio existente en http, estos son los pasos:
- Solicitar el certificado para ambos nombres y comprobar que
https://example.comfunciona (verá una página de WordPress, quizá todavía sin estilos). - Hacer una copia de seguridad (lección 8.1).
- Poner ambas direcciones en Ajustes > Generales en
https://y guardar. Se cerrará su sesión; inicie sesión de nuevo a través de https. - Convertir los enlaces antiguos en el contenido de
http://example.comahttps://example.com. Hágalo con una herramienta que entienda los datos serializados, comowp search-replaceo un plugin de buscar y reemplazar (lección 3.2), nunca con una simple instrucción SQL. - Redirección: haga que el servidor web envíe todas las peticiones en http con un 301 a https (lección 3.2). Muchos proveedores de alojamiento tienen una casilla para esto; en caso contrario, unas líneas en
.htaccess. - Comprobar con el ejercicio de esta lección y el de la lección 3.2.
Bloqueado fuera: cuando la dirección está mal configurada
Si escribe un error tipográfico en las direcciones (htps://, un dominio incorrecto), WordPress le enviará tras guardar a esa dirección errónea. Ya no podrá acceder al escritorio de administración. No se preocupe, hay dos salidas:
A través de wp-config.php. Ponga antes de la línea "eso es todo, deja de editar":
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Estas líneas tienen prioridad sobre los valores de la base de datos. Los campos en Ajustes > Generales aparecerán entonces en gris. Inicie sesión, ponga los valores correctos en la base de datos y vuelva a quitar las líneas (o déjelas deliberadamente, así nadie podrá cambiar las direcciones por accidente desde el escritorio de administración).
A través de phpMyAdmin. Abra la tabla wp_options y ajuste los valores de siteurl y home.
HSTS: que el navegador lo recuerde
Con la cabecera HSTS (Strict-Transport-Security) el servidor le dice al navegador: "a partir de ahora, entra aquí únicamente a través de https." El navegador convierte después por sí mismo cada http:// en https://, sin hacer antes una petición sin cifrar.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS es un buen paso adicional, pero con una advertencia: un navegador que ya ha visto HSTS se negará después a abrir el sitio sin un certificado válido, ni siquiera con la opción "continuar de todos modos". Con includeSubDomains esto se aplica a cada subdominio. Si tiene un subdominio sin certificado (por ejemplo un sistema interno antiguo), quedará inaccesible tras activar HSTS. Por eso, empiece con un max-age corto (por ejemplo un día, 86400), compruebe que todo funciona y después amplíelo.
En la práctica: así se ve en un panel
Como ejemplo usamos DirectAdmin. En cPanel el apartado se llama SSL/TLS Status (AutoSSL), en Plesk SSL/TLS Certificates.
- Abra Certificados SSL en su dominio y elija Certificado gratuito y automático de Let's Encrypt.
- Marque
example.comywww.example.comy solicite el certificado. - En los ajustes del dominio, marque la casilla para enviar siempre a los visitantes a https (en DirectAdmin: Forzar SSL con redirección https). Use solo un método de redirección: dos métodos distintos a la vez pueden provocar un bucle ("demasiadas redirecciones").
- Vaya en WordPress a Ajustes > Generales y ponga ambas direcciones en
https://.
Resumen
- https cifra todo entre el navegador y el servidor; el certificado demuestra quién es el servidor.
- Los certificados gratuitos de Let's Encrypt tienen una validez corta y se renuevan automáticamente; deben cubrir todos los nombres que escriba un visitante.
- La dirección de WordPress (siteurl) y la dirección del sitio (home) deben estar ambas en
https://. - Si se queda bloqueado fuera por una dirección incorrecta, arréglelo con WP_HOME y WP_SITEURL en wp-config.php o en phpMyAdmin.
- HSTS es un buen paso adicional; empiece con una validez corta.
Cuestionario
Ejercicio
Ejercicio A3.1: ¿Es correcto su certificado? Introduzca la dirección de su sitio. El programa establece una conexión TLS con el dominio sin www y con www (si existe) y comprueba: ¿es el certificado válido y de confianza?, ¿cubre ambos nombres?, ¿es válido durante más de 14 días?, ¿envía el sitio una cabecera HSTS? Si falta HSTS, aparecerá en naranja con una explicación, no como un error.
Para saber más
Estos artículos describen los pasos en los paneles de WebOké; en otros paneles funcionan de forma parecida.
- Manual de DirectAdmin 6.1: ¿Qué es SSL y cómo lo gestiona WebOké?
- Manual de DirectAdmin 6.2: Solicitar un certificado gratuito de Let's Encrypt
- Manual de DirectAdmin 6.3: Certificado para www, subdominios y wildcard
- Manual de DirectAdmin 6.4: Enviar siempre a los visitantes a https
- Activar, renovar y solucionar problemas del certificado SSL
- La diferencia entre un certificado gratuito y uno de pago
- Curso gratuito de DNS 5.2: CAA: ¿quién puede emitir certificados?
