Implemente Collabora Online Office en Ubuntu con Let's Encrypt SSL
Bienvenido a esta guía, veremos cómo implementar Collabora Online Office en Ubuntu 20.04|18.04 con Let's Encrypt SSL. Sin embargo, antes de comenzar, conozcamos de qué se trata esta herramienta.
Collabora Online es una potente oficina en línea basada en LibreOffice de código abierto que admite la mayoría de los formatos de documentos, es decir, hojas de cálculo, presentaciones, etc. Esta suite ofimática online se puede integrar en cualquier aplicación web. Collabora Online es mantenido por Collabora Productivity.
Una de las características sorprendentes de Collabora Online es la capacidad de permitir la edición colaborativa y en tiempo real de documentos de Word, presentaciones, hojas de cálculo y gráficos vectoriales.
Las otras características de Collabora Online Office son:
- Código abierto, escalable, ahorra dinero
- Tiene soporte a largo plazo y actualizaciones de seguridad firmadas.
- Funciona en cualquier navegador moderno sin necesidad de complementos.
- Conserva el diseño y el formato de los documentos.
- Capacidad de integración con infraestructuras existentes.
- Múltiples opciones de implementación
- Tiene una consola de administración para monitorear la utilización del sistema.
- Soluciones a medida posibles
- Interfaz de usuario personalizable
¡Ahora deberíamos estar listos para sumergirnos!
Empezando.
Para esta guía, necesitará lo siguiente:
- 2 servidores Ubuntu 20.04|18.04. (Oficina de Nextcloud y Collabora)
- Un FQDN para Let's Encrypt SSL
- Motor acoplable
- Pila de lámpara
- robot certificado
Ahora comenzaremos cumpliendo todos los requisitos anteriores antes de implementar Collabora Online Office en Ubuntu 20.04|18.04.
Paso 1: instale la pila LAMP en Ubuntu 20.04|18.04
El servidor LAMP se puede instalar en Ubuntu 20.04|18.04 usando un solo comando como se muestra a continuación.
sudo apt-get install lamp-server^
Habilite los módulos inversos de Apache.
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod ssl
sudo a2enmod proxy_https
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html
sudo a2enmod proxy_wstunnel
Paso 2: instale Docker en Ubuntu 20.04|18.04.
Dado que ejecutaremos Collabora Online Office como un contenedor de Docker, necesitamos tener Docker instalado y ejecutándose en nuestro Ubuntu 20.04|18.04.
Instalar Docker Container Engine en Ubuntu
sudo curl -sSL https://get.docker.com/ | CHANNEL=stable sh
Inicie y habilite Docker en Ubuntu 20.04|18.04.
sudo systemctl enable docker
sudo systemctl start docker
Consultar el estado del servicio.
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-12-18 07:30:14 UTC; 3min 4s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 14338 (dockerd)
Tasks: 8
Memory: 28.9M
CGroup: /system.slice/docker.service
└─14338 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Paso 3: implementar el contenedor de Collabora Online Office.
Comience instalando Nextcloud en su sistema Ubuntu 20.04|18.04 usando la guía a continuación.
- Instalar Nextcloud en Ubuntu
Asegúrese de que se pueda acceder a Nexcloud a través de HTTPS y que el servidor que ejecuta el servicio Collabora pueda acceder a él, ya que Collabora Online debe utilizar el mismo protocolo que la instalación del servidor.
Ahora que hemos cumplido con los requisitos, procederemos e implementaremos el contenedor de Collabora Online.
Para un dominio de la siguiente nube, ejecute el contenedor como se muestra a continuación. Recuerde sustituir el subdominio y el dominio en el que se ejecuta Nextcloud
sudo docker run -t -d -p 127.0.0.1:9980:9980 \
-e 'domain=subdomain\\.domain\\.com' \
-e 'username=UserName' -e 'password=Your-Password' \
--cap-add MKNOD collabora/code
Por ejemplo, en mi caso, este comando aparecerá como se muestra a continuación.
sudo docker run -t -d -p 127.0.0.1:9980:9980 \
-e 'domain=nextcloud\\.example\\.com' \
-e 'username=thor' -e 'password=StrongPassword' \
--cap-add MKNOD collabora/code
En este caso, proporcioné la URL de mi servidor Nextcloud nextcloud.example.com y también creé un usuario de Collabora thor con una contraseña como StrongPassword.
Si está utilizando localhost como dominio, use --net host
para que el contenedor acceda a su servidor Nextcloud.
sudo docker run -t -d -p 127.0.0.1:9980:9980 \
-e 'domain=localhost --net host' \
-e 'username=thor' -e 'password=StrongPassword' \
-e "extra_params=--o:ssl.enable=false --o:ssl.termination=true" \
--restart always collabora/code
También puede implementar el contenedor Collabora Docker para más de un dominio Nextcloud.
sudo docker run -t -d -p 127.0.0.1:9980:9980 \
-e 'domain=subdomain1\\.domain\\.com|subdomain2\\.domain\\.com' \
-e 'username=UserName' -e 'password=Your-Password' \
--cap-add MKNOD collabora/code
Ahora verifique si el contenedor se está ejecutando como se muestra a continuación.
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f9fef2d18edd collabora/code "/start-collabora-on…" 37 seconds ago Up 35 seconds 127.0.0.1:9980->9980/tcp nifty_spence
Paso 4: configurar el proxy inverso Apache.
Ahora el contenedor se ejecuta en localhost en el puerto 9980 expuesto en el puerto 9980/TCP. Ahora queremos configurar Apache para poder acceder a Collabora utilizando una dirección IP o un nombre de dominio a través de HTTPS.
Cree un VirtualHost como se muestra a continuación.
sudo vi /etc/apache2/sites-available/collabora-online.conf
En el archivo, agregue el siguiente contenido.
<VirtualHost *:443>
ServerName collabora.example.com:443
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on
# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode
# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
# keep the host
ProxyPreserveHost On
# static html, js, images, etc. served from coolwsd
# browser is the client part of LibreOffice Online
ProxyPass /browser https://127.0.0.1:9980/browser retry=0
ProxyPassReverse /browser https://127.0.0.1:9980/browser
# WOPI discovery URL
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# Main websocket
ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/$1/ws nocanon
# Admin Console websocket
ProxyPass /cool/adminws wss://127.0.0.1:9980/cool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /cool https://127.0.0.1:9980/cool
ProxyPassReverse /cool https://127.0.0.1:9980/cool
# Endpoint with information about availability of various features
ProxyPass /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities
</VirtualHost>
Recuerde reemplazar collabora.example.com con el nombre de su servidor apropiado. Activa tu sitio.
sudo a2ensite collabora-online.conf
sudo systemctl reload apache2
Instale Certbot para Apache.
sudo apt install python3-certbot-apache
Instale certificados SSL para su nombre de dominio.
sudo certbot --authenticator standalone --installer apache \
-d collabora.example.com --pre-hook "service apache2 stop" \
--post-hook "service apache2 start"
En el código, reemplace collabora.example.com con su nombre de dominio y proceda como se indica a continuación.
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email
.....
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Running pre-hook command: service apache2 stop
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for collabora.example.com
Waiting for verification...
Cleaning up challenges
Running post-hook command: service apache2 start
Created an SSL vhost at /etc/apache2/conf-enabled/collabora-online-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/conf-enabled/collabora-online-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting vhost in /etc/apache2/conf-enabled/collabora-online.conf to ssl vhost in /etc/apache2/conf-enabled/collabora-online-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled
https://collabora.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=collabora.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ahora se puede acceder a Collabora a través de HTTPS.
Paso 5: conecte Nextcloud a Collabora Online
Inicie sesión en su panel de Nextcloud, navegue hasta Aplicaciones->Office y Texto. Mientras esté aquí, asegúrese de que Collabora Online esté descargado y habilitado como se muestra a continuación.
Ahora dirígete a Configuración->Administración->Oficina. Debes conectar Nextcloud a Collabora Online. Haga clic en “usar su propio servidor” y proporcione la URL de Collabora, guarde y asegúrese de que el servidor sea accesible.
Además, permita que Collabora utilice Open XML (OOXML) para que los archivos creados sean compatibles con el software de Microsoft Office. Una vez realizadas las configuraciones anteriores, vaya a la pestaña archivos y cree el documento deseado.
Crea un documento de Word haciendo clic en Nuevo documento y asignándole un nombre. Collabora se lanzará como se muestra a continuación.
Crea tu archivo y guárdalo.
También hay varias opciones de descarga para el archivo creado, como se muestra.
También puedes crear un archivo de hoja de cálculo usando Collabora en línea.
La hoja de cálculo se iniciará como se muestra a continuación, lista para editar.
También se pueden crear presentaciones con Collabora.
Todos los archivos de Collabora que haya creado estarán disponibles en la pestaña Archivos como se muestra a continuación.
Eso marca el final de esta guía. Hemos implementado exitosamente Collabora Online Office en Ubuntu 20.04|18.04 con Let's Encrypt SSL.
Ver más:
- Cómo ejecutar documentos de ONLYOFFICE como un contenedor Docker
- Cómo instalar FreeOffice en Ubuntu
- Instale Apache OpenOffice en Kali Linux | Debian | CentOS