Se me ha encomendado la tarea de convertir aproximadamente 100 sitios en mi instancia multisitio a HTTPS.
Puedo escribir fácilmente una secuencia de comandos para golpear la base de datos y cambiar los valores siteurl
y home
a HTTPS, lo que debería obligar al sitio a poner en cola secuencias de comandos e imágenes incrustadas futuras en HTTPS, ¿verdad?
Bueno, también tendré que revisar todos los post_content para encontrar enlaces internos, así como imágenes usando HTTP y convertirlas a HTTPS.
Probablemente podría unir algo para hacer eso, pero me pregunto qué más necesito cambiar. GUID ¿verdad? Si usara los comandos $ wpdb, ¿tendría que volver a serializar la base de datos después?
Debería haber preguntado primero, ¿hay un complemento confiable que se encargue de esto por mí? ¿Qué más necesito saber sobre este proceso?
Notas: ya tenemos todos los certificados SSL, así que es algo de lo que no tengo que preocuparme. - El servidor está ejecutando Linux (redhat) y apache - El multisitio está usando subdirectorios - No sé mucho más, el servidor está fuera de mi jurisdicción
http
ahttps
si no cambia la longitud de la cadena también!Respuestas:
Puede ejecutar un script para ACTUALIZAR todas las URL y guías a https, si desea una configuración limpia.
Pero también considere alternativas como:
En wp-config.php para el backend:
En wp-config.php para la interfaz (o ejecute un script db UPDATE):
Luego, simplemente podría ejecutar un script para ACTUALIZAR toda la url de contenido de wp_posts.
fuente
Este proceso en realidad implica comprar un Certificado de seguridad y aplicarlo a su servidor para sus sitios web. A su vez, esto obligará a todos los visitantes a una conexión segura a través del certificado presentado por su servidor. Estos certificados se denominan SSL Certs: http://www.DigiCert.com/SSL-Certificates
fuente
Una posible forma de hacer esta modificación de datos es usar WP-CLI en el terminal.
En primer lugar, debe asegurarse de tener una copia de seguridad y una estrategia de restauración sólida en caso de que algo salga mal. También debe probar este procedimiento en un sistema local o de prueba con una copia de la base de datos en vivo.
Los pasos básicos son, iterar sobre cada sitio de su red y reemplazar las URL de cada sitio utilizando el
search-replace
comando WP-CLI .Aquí hay un bash one-liner:
Examinemos eso:
Ese comienza un bucle para cada línea de la salida del comando dentro
$()
y escribe cada línea en la variable$SITE
.Ese es el
site list
comando WP-CLI que le brinda una lista de todas las URL del sitio en su red. Ejecute este comando únicamente, probablemente verá algo como:Ahora
solo comenzará la parte del bucle interno.
El comando del bucle interno hace toda la magia (lo dividí en dos líneas usando
\
para facilitar la lectura):Decimos a WP-CLI para buscar para
$SITE
(por ejemplohttps://your-site.tld/
) y reemplazar con una versión ligeramente modificada:${SITE/http:/https:}
. Esta es una cadena bash que reemplaza la operación que reemplazahttp:
conhttps:
. (Entonces, resolviendo las variables, el comando se vería asíwp search-replace "http://your-site.tdl/" "https://your-site.tld/"
).search-replace
tiene muchas opciones posibles que se describen en la documentación . En el ejemplo usé estos:--dry-run
y--verbose
son claramente útiles para probar el comando.--network
aplica la operación de búsqueda y reemplazo también a las tablas de red.--precise
le dice a WP-CLI que use PHP en lugar de SQL para buscar y reemplazar los valores. Eso asegura que los valores serializados no se corrompan.Finalmente el ciclo se cierra con
Permítanme enfatizarlo nuevamente: pruebe esto profundamente antes de comenzar a usar esto en la producción. Debe comprender cómo funciona y qué hace WP-CLI. Utilicé WP-CLI antes para realizar tales operaciones de Searach y reemplazar para migrar sitios múltiples a otros nombres de dominio, pero no para cambiar de
http
ahttps
.Puede haber algunos casos extremos: WP-CLI todavía lee
wp-config.php
e intenta encontrar una «red» coincidente en la base de datos utilizando las constantes enwp-config.php
. Si está manipulando un sitio (la base de datos) pero no el otro (las constantes enwp-config.php
), podría tener problemas. Pero para su caso, creo que eso no será un problema, ya que WP generalmente dependeDOMAIN_CURRENT_SITE
yPATH_CURRENT_SITE
no cambiarán de todos modos. Pero de nuevo, pruebe esto a fondo.Con un poco más de magia bash, también podría dividir este ciclo en trozos de 5 o 10 sitios y recorrerlo paso a paso.
fuente
Para garantizar que todos sus sitios web utilicen HTTPS en su
post_content
, puede realizar una de dos opciones:1. Backend: ejecutar una consulta SQL
Para asegurarse de que todos sus enlaces HTTP estén configurados como HTTPS, use la siguiente consulta SQL:
OLD_URL
será reemplazado conhttp://example.com
(no HTTP)NEW_URL
será reemplazado conhttps://example.com
(HTTPS)Esto cubrirá el
siteurl
,home
y todo su contenido en su sitio web a la nueva HTTPS.2. Frontend: use el complemento Buscar y reemplazar
Un enfoque más fácil de usar es usar el complemento Buscar y reemplazar para reemplazar fácilmente todas las tablas que contienen su antiguo HTTP y cambiarlas a HTTPS. El proceso es fácil de usar y puede previsualizar qué tablas y filas se verán afectadas antes de aplicar esos cambios.
Preaviso
Antes de aplicar cualquier cambio, creo que es evidente que siempre haga una copia de seguridad de su base de datos en caso de que algo salga mal.
fuente
HTTP es un protocolo predeterminado, que es utilizado por la mayoría de los sitios web para manejar la información a través de la web. Su sitio web se ejecuta en HTTPS sin ningún mensaje de error, significa que su certificado se ha instalado correctamente. Debe migrar todo su sitio web de HTTP a HTTPS.
Aprenda cómo mover HTTP a HTTPS para WordPress
fuente