¿Tu integración de ONLYOFFICE con Nextcloud dejó de funcionar después de renovar el certificado SSL? Aparece el error: “Error when trying to connect (Error occurred in the document service: Error while downloading the document file to be converted.)” No te preocupes, aquí tienes la guía paso a paso para resolverlo de forma definitiva, tanto si usas certificado autofirmado como si quieres migrar a Let’s Encrypt.
📌 Índice
- Diagnóstico del problema
- Renovar el certificado en Nextcloud (Snap)
- Configurar Apache para el puerto 4445 (si aplica)
- Solución de confianza SSL en el contenedor ONLYOFFICE
- Configurar la integración en Nextcloud
- Automatizar renovaciones futuras
- Conclusión y recomendaciones finales
1. 🔍 Diagnóstico del problema
El error se debe a que el contenedor de ONLYOFFICE Document Server no confía en el nuevo certificado que presenta Nextcloud al intentar descargar el archivo a convertir. En los logs del contenedor aparece:
error downloadFile:url=https://gusadrive.dyndns.org:444/... code:DEPTH_ZERO_SELF_SIGNED_CERTPara confirmar el diagnóstico, revisa los logs de tu contenedor:
sudo docker ps # Identifica el nombre del contenedor (ej. reverent_torvalds)
sudo docker logs --tail 100 | grep -i "downloadFile\|error\|CERT"2. 🔄 Renovar el certificado en Nextcloud (Snap)
Si aún no has renovado tu certificado autofirmado, sigue estos pasos. Si ya lo hiciste, pasa al paso 3.
a) Generar un nuevo certificado autofirmado para el dominio:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /var/snap/nextcloud/current/certs/custom/key.pem \
-out /var/snap/nextcloud/current/certs/custom/cert.pem \
-subj "/CN=gusadrive.dyndns.org"b) Crear el archivo chain.pem (necesario para Nextcloud Snap):
sudo cp /var/snap/nextcloud/current/certs/custom/cert.pem /var/snap/nextcloud/current/certs/custom/chain.pemc) Instalar el certificado en Nextcloud Snap:
sudo nextcloud.enable-https custom \
/var/snap/nextcloud/current/certs/custom/cert.pem \
/var/snap/nextcloud/current/certs/custom/key.pem \
/var/snap/nextcloud/current/certs/custom/chain.pemd) Reiniciar Nextcloud:
sudo snap restart nextcloud3. 🌐 Configurar Apache para el puerto 4445 (si aplica)
Si tienes un VirtualHost de Apache que expone el panel de ONLYOFFICE en el puerto 4445, actualiza la configuración.
a) Localiza el VirtualHost:
sudo grep -r "4445" /etc/apache2/sites-enabled/b) Edita el archivo (ej. /etc/apache2/sites-available/onlyoffice.conf) y apunta a los nuevos certificados:
<VirtualHost *:4445>
ServerName gusadrive.dyndns.org
SSLEngine on
SSLCertificateFile "/etc/apache2/ssl/onlyoffice.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/onlyoffice.key"
...
</VirtualHost>c) Copia los certificados a la ruta especificada:
sudo mkdir -p /etc/apache2/ssl
sudo cp /var/snap/nextcloud/current/certs/custom/cert.pem /etc/apache2/ssl/onlyoffice.crt
sudo cp /var/snap/nextcloud/current/certs/custom/key.pem /etc/apache2/ssl/onlyoffice.keyd) Habilita el sitio y reinicia Apache:
sudo a2ensite onlyoffice.conf
sudo systemctl restart apache24. 🐳 Solución de confianza SSL en el contenedor ONLYOFFICE
Tienes dos opciones para que el contenedor confíe en el certificado autofirmado de Nextcloud.
✅ Opción A (Recomendada para producción): Agregar el certificado al almacén de CA del contenedor
1. Copia el certificado al contenedor:
sudo docker cp /var/snap/nextcloud/current/certs/custom/cert.pem <nombre_contenedor>:/usr/local/share/ca-certificates/nextcloud.crt2. Actualiza el almacén de CA dentro del contenedor:
sudo docker exec <nombre_contenedor> update-ca-certificates3. Reinicia el contenedor:
sudo docker restart <nombre_contenedor>4. Verifica que el certificado se haya agregado:
sudo docker exec <nombre_contenedor> ls -la /usr/local/share/ca-certificates/⚠️ Opción B (Solución temporal / pruebas): Deshabilitar la verificación SSL en ONLYOFFICE
Esta opción es más rápida pero reduce la seguridad (el contenedor no validará certificados en ninguna conexión saliente).
1. Entra al contenedor:
sudo docker exec -it <nombre_contenedor> bash2. Edita el archivo /etc/onlyoffice/documentserver/local.json y agrega la siguiente sección (si no existe):
{
"services": {
"CoAuthoring": {
"requestDefaults": {
"rejectUnauthorized": false
}
}
}
}3. Guarda, sal del contenedor y reinícialo:
sudo docker restart <nombre_contenedor>5. ⚙️ Configurar la integración en Nextcloud
Ve a Configuración → ONLYOFFICE → Servidor de documentos en Nextcloud y asegura estos valores:
- URL del servidor de documentos:
http://localhost:8085/(con barra final). - Clave secreta (JWT): Debe coincidir con la generada en ONLYOFFICE. Obténla con:
sudo docker exec <nombre_contenedor> sudo documentserver-jwt-status.sh - Configuración avanzada (JSON):
- Si usaste la Opción A, no necesitas nada extra.
- Si usaste la Opción B, agrega:
{ "rejectUnauthorized": false }
Guarda los cambios.
6. 🔁 Automatizar renovaciones futuras (para certificado autofirmado)
Crea un script que se ejecute mensualmente para regenerar el certificado e instalarlo tanto en Nextcloud como en el contenedor.
Script de ejemplo (/root/renew_selfsigned.sh):
#!/bin/bash
# Regenerar certificado autofirmado
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /var/snap/nextcloud/current/certs/custom/key.pem \
-out /var/snap/nextcloud/current/certs/custom/cert.pem \
-subj "/CN=gusadrive.dyndns.org"
cp /var/snap/nextcloud/current/certs/custom/cert.pem /var/snap/nextcloud/current/certs/custom/chain.pem
# Instalar en Nextcloud
nextcloud.enable-https custom \
/var/snap/nextcloud/current/certs/custom/cert.pem \
/var/snap/nextcloud/current/certs/custom/key.pem \
/var/snap/nextcloud/current/certs/custom/chain.pem
snap restart nextcloud
# Copiar al contenedor de ONLYOFFICE
docker cp /var/snap/nextcloud/current/certs/custom/cert.pem <nombre_contenedor>:/usr/local/share/ca-certificates/nextcloud.crt
docker exec <nombre_contenedor> update-ca-certificates
docker restart <nombre_contenedor>Programa en cron (diario a las 3 AM, primer día de mes):
sudo crontab -e
# Añadir la línea:
0 3 1 * * /root/renew_selfsigned.sh >> /var/log/renew_cert.log 2>&17. 🎯 Conclusión y recomendaciones finales
- El error “Error while downloading the document file” después de renovar un certificado autofirmado en Nextcloud se debe a que el contenedor de ONLYOFFICE no confía en ese certificado.
- Opción A (recomendada): Agregar el certificado al almacén de CA del contenedor y actualizar las CA. Es segura y permite mantener la verificación SSL activa.
- Opción B (temporal): Deshabilitar la verificación SSL en ONLYOFFICE editando
local.json. Más rápida pero menos segura. - Recomendación a largo plazo: Utilizar un certificado de Let’s Encrypt con validación DNS para evitar este problema de raíz y simplificar las renovaciones.
Notas adicionales:
- La comunicación entre Nextcloud y ONLYOFFICE puede hacerse por HTTP interno (
http://localhost:8085) para evitar SSL por completo (válido si ambos servicios corren en el mismo servidor). - Asegura que el token JWT coincida exactamente entre ambos lados; un token incorrecto dará error 403.
- Los logs del contenedor son la mejor herramienta para depurar:
sudo docker logs <nombre> --tail 50 -f.
¿Te ha sido útil esta guía? Déjanos un comentario si tienes dudas o comparte tu experiencia. Si necesitas ayuda adicional, no dudes en contactarnos.
Deja un comentario