WordPress – error:1408F10B en llamadas API.

Wordpress API Curl Nginx Ubuntu

Hace poco preparé un servidor nuevo para una página web WordPress. Lo preparé siguiendo el mismo procedimiento de siempre: Ubuntu 20.04 como sistema operativo, Nginx como servidor web, PHP 7.4 y MariaDB para la base de datos. Preparé todas las configuraciones y bases de datos, permisos y accesos, e instalé WordPress.

Una vez instalado, cuando me disponía a instalar los plugins y preparar el entorno, me topé con este error:

curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

WordPress no podía conectar consigo mismo utilizando llamadas API para ejecutar tareas programadas (wp-cron) o tareas en segundo plano. Me pareció bastante extraño así que me puse a investigar la causa. Busqué por internet y algunas de las posibles causas eran:

  • Que la librería cURL (libcurl) no estuviera instalada y/o activada.
  • Que hubiera diferentes versiones de PHP instaladas interfiriendo entre ellas.
  • Que al bloque de servidor en la configuración de Nginx le faltara la directiva ssl.

Todas estas son muy fáciles de arreglar, pero ninguna de ellas ocurría en mi caso.

Tras buscar un poco más por internet y varias pruebas más encontré la solución, que al final era igual de simple que las demás para arreglar los problemas mencionados arriba.

Añadir el o los dominios usados por la web al archivo /etc/hosts. Simplemente añades una linea con la IP local del servidor, y el o los nombres de dominio que la página va usar, por ejemplo:

192.168.1.5 kevinmaschke.com www.kevinmaschke.com

Una vez hecho esto, reinicié el servidor por si acaso y violà! El error ya no aparecía.

Pequeño consejo extra para WordPress

Es bien sabido que el uso del controlador cron integrado en WordPress puede llegar a afectar los tiempos de carga de la página web, por ello lo recomendado es deshabilitarlo añadiendo la siguiente línea al archivo wp-config.php:

define('DISABLE_WP_CRON', 'true');

Y ejecutar estas tareas programadas en segundo plano a través del sistema operativo mismo. Para ello, en Ubuntu, editamos CRON utilizando el comando crontab -e y añadimos la siguiente línea:

*/5 * * * * cd /var/www/kevinmaschke.com/public; /usr/local/bin/wp cron event run --due-now >/dev/null 2>&1

Es importante recordar que para que esto funcione es necesario tener instalado WP-CLI.