Buenas tardes tras un tiempo sin dedicaros unas palabras en este blog.

Hoy me he encontrado con un problema. Una de las webs que alojo en uno de mis servidores tenía la necesidad de conectar el plugin MC4WP con su cuenta de Mailchimp, y en el panel de WordPress obteníamos un error 503 tal y como se muestra en la siguiente imagen:

Buscando acerca de este error me encuentro con esta web:

https://wordpress.org/support/topic/mailchimp-api-error-503-service-unavailable-2/

Así que observo que el problema es que han agregado el servidor a un blacklist de Akamai, firewall que utiliza Mailchimp.

Para asegurarme, decido probar el comando que ahí indican desde el servidor, conectándome vía SSH al mismo:

curl -v https://us1.api.mailchimp.com/3.0/?apikey=test

Cambiando test por la API Key generada en MailChimp, y cambiando us1 por el servidor que aparece en la última parte de la API Key. De esta forma obtengo el error:

[root@nsXXXX ~]# curl -v https://us20.api.mailchimp.com/3.0/?apikey=xxxxxxxxxxxx-us20
* About to connect() to us20.api.mailchimp.com port 443 (#0)
*   Trying 104.123.89.75... connected
* Connected to us20.api.mailchimp.com (104.123.89.75) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
* 	subject: CN=wildcardsan2.mailchimp.com,OU=IT,O="The Rocket Science Group, LLC",L=Atlanta,ST=Georgia,C=US
* 	start date: Jul 09 00:00:00 2019 GMT
* 	expire date: Oct 07 12:00:00 2020 GMT
* 	common name: wildcardsan2.mailchimp.com
* 	issuer: CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US
> GET /3.0/?apikey=xxxxxxxxxxxx-us20 HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: us20.api.mailchimp.com
> Accept: /
> 
< HTTP/1.1 503 Service Unavailable
< Server: Apache
< Content-Length: 126
< Content-Type: application/json
< ETag: "953d389c654d003dd7a67b8f959df97a:1452000673"
< Cache-Control: max-age=82637
< Date: Sun, 29 Dec 2019 13:28:19 GMT
< Connection: keep-alive
< 
* Connection #0 to host us20.api.mailchimp.com left intact
* Closing connection #0
{"type":"akamai_error_message","title":"akamai_503","status":503,"ref_no":"Reference Number: 00.0c367a5c.1577626099.2d04144e"}

Contrasto que efectivamente tengo un error akamai_503. En vistas de esta confirmación veo que la solución más sencilla es contratar otra IP en mi proveedor.

En concreto parto de un servidor contratado en una filial de OVH, So You Start, con una distribución CentOS Release 6.10. Tras contratar la IP adicional en So You Start, por el módico precio de 1,21€, me dispongo a configurar el servidor. Para ello realizo los siguientes pasos:

ATENCIÓN: Si el Sistema Operativo es otro diferente, el fichero de interfaces puede encontrarse en otro lugar. Se adjunta una guía con soluciones para otros sistemas aquí.

1. Añadir la ip a la interfaz del servidor: para realizar este paso, simplemente creo el fichero /etc/sysconfig/network-scripts/ifcfg-eth0:1 con el editor nano

nano /etc/sysconfig/network-scripts/ifcfg-eth0:1

Y añado las siguientes líneas:

DEVICE="eth0:1"
BOOTPROTO=static
IPADDR="your_ip_address"
NETMASK="255.255.255.255"
BROADCAST="your_ip_address"
ONBOOT=yes

Sustituyendo your_ip_address por la nueva IP contratada.

Tras guardar el fichero, reinicio el servicio escribiendo:

ifup eth0:1

2. Modificar los registros A del domino en cuestión: simplemente modifico la ip anterior a la que apunta  el registro A de midominio.com y www.midominio.com a la IP nueva.

3. Probar de nuevo mediante cURL: hago el test haciendo uso de la nueva IP escribiendo:

curl --interface eth0:1 -v https://us20.api.mailchimp.com/3.0/?apikey=xxxxxxxxxxxxxx-us20

4. Accedo al panel de administración de WordPress e intento que conecte el plugin de nuevo.

Y listo.

Espero que os sirva, y si es así, que lo difundáis.

Un abrazo y felices fiestas.