Certificado SSL de Let's Encrypt no se renueva automáticamente por segunda vez consecutiva

Hola a todos. Necesito ayuda para solucionar un problema. Por segunda vez consecutiva, mi certificado SSL de Let’s Encrypt no se renovó automáticamente. Al leer los hilos relevantes aquí, logré renovar el certificado cada vez eliminando el anterior y reconstruyendo la aplicación. Tenía la impresión de que hacer esto provocaría que la renovación se realizara automáticamente la próxima vez. No fue así.

No veo ninguna evidencia de un trabajo cron ejecutándose en algún lugar que intente renovar el certificado. Supongo que debería buscar en los diversos lugares de la máquina anfitriona, en lugar de dentro del contenedor Docker. ¿Tengo razón? crontab -l dice “no crontab for root” y no veo nada en /etc/cron*.

Como resultado, no puedo tener confianza en si mi servidor (1) no está intentando renovar el certificado o (2) lo está intentando y fallando. ¿Alguien está dispuesto a guiarme a través de la solución de problemas?

Desafortunadamente, como eliminé shared/standalone/{letsencrypt,ssl} para aprovisionar el certificado de nuevo, no tengo registros antiguos para revisar. ¿Cómo puedo al menos verificar que el trabajo cron está instalado para poder revisar los registros la próxima vez que el sistema intente renovar el certificado?

Gracias.

2 Me gusta

Creo que podría ser la última vez que sucedió esto. Hubo una solución en diciembre:

Muchas gracias, pero preferiría mucho revisar la configuración para ver si es probable que ocurra la próxima renovación. No sé cómo revisar esa configuración, así que esa es la ayuda que pido ahora.

Aparentemente, debería haber un trabajo cron. ¿Dónde está? No veo ninguno listado en mi servidor. ¿No es realmente un trabajo cron, sino una tarea programada en Rails?

Vi en /var/discourse/shared/standalone/letsencrypt/acme.sh.log (en el sistema anfitrión) que Discourse verificó mi certificado SSL y la respuesta fue “Todavía es válido”, así que supongo que es evidencia de que Discourse intentará renovar el certificado a tiempo.

Ahora me gustaría saber ¿cómo se configura ese trabajo “cron”? ¿Es realmente un trabajo cron a nivel de Linux o simplemente una tarea programada recurrente en Rails usando algo como whenever? ¿Hay algo que pueda examinar y verificar sin revisar el código fuente? ¿Podría encontrar esto usando la consola de Rails o lo que sea que sea eso en 2026? (Hace mucho tiempo que no trabajo con Rails).

Gracias.

Ah, y oye, finalmente he aprendido que este defecto se debió a un atajo mágico no documentado, no muy claro y evidentemente inesperado: “Si comienza con /, entonces debe ser una expresión regular”. Aún no entiendo el contexto completo, pero eso parece ser.

Eso es la cultura del Duck Typing para ti: flexibilidad maravillosa con el riesgo de que si no escribes las cosas, los clientes se llevarán una sorpresa. :wink:

Parece prudente fortalecer Pups::ReplaceCommand para verificar más cuidadosamente si to parece una expresión regular o no. O lo que sea que esté haciendo que asume que debe eval() algo en lugar de tratarlo como el texto de reemplazo.

Supongo que esto entra en la categoría de Trabajo de Conserjería Que Nadie Tiene Tiempo Ni Energía Para Hacer. Si alguien pudiera señalarme algunos ejemplos útiles de cómo debe comportarse ReplaceCommand, tal vez podría donar algo de tiempo y energía a ello.

Al menos tengo una mejor idea de lo que está pasando, pero ese conocimiento ya ha comenzado a decaer incluso antes de que terminara de escribir esta frase. :person_shrugging: