… enrevesado de configurar y no muy seguro de por qué lo hace finalmente.
Pues sí, después de una buena temporada me he decidido a configurar un servidor virtual para el panel web de control de impresoras del programa cups.
Los pasos que he seguido han sido los siguientes:
- Crear un dominio específico:
printers.empresa.net
- Configurar CUPS para que acepte conexiones seguras y no seguras.
- Crear un servidor virtual en Apache para dicho servidor que ejerce como servidor de proximidad inverso (reverse proxy).
- Disfrutar de lo logrado.
Configurar el servidor CUPS
La configuración básica es la siguiente (un extracto, no está completa):
ServerAlias printers.empresa.net LogLevel debug MaxLogSize 10m # Allow remote access Port 631 SSLPort 632 Listen /var/run/cups/cups.sock Browsing On BrowseAddress @LOCAL BrowseLocalProtocols dnssd DefaultAuthType Basic WebInterface Yes BrowseWebIF Yes ServerCertificate /etc/letsencrypt/live/empresa.net/fullchain.pem ServerKey /etc/letsencrypt/live/empresa.net/privkey.pem SLListen 127.0.0.1:632
Configurar el servidor Apache
Con lo anterior consigo que escuche en los puertos 631 y 632 (para conexiones cifradas) sobre el interfaz local. Ahora paso a configurar el servidor web para que haga de frontal.
<VirtualHost *:80> ServerName printers.empresa.net ServerAlias printers # Comunicación con el servidor CUPS ProxyPass / http://127.0.0.1:631/ ProxyPassReverse / http://127.0.0.1:631/ </VirtualHost> <VirtualHost *:443> ServerName printers.empresa.net ServerAlias printers LogLevel warn ErrorLog /var/log/apache2/printers.empresa.net/error.log CustomLog /var/log/apache2/printers.empresa.net/access.log combined Include "/etc/apache2/ssl.conf" # Comunicación con el servidor CUPS SSLProxyEngine on SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off ProxyPass / https://127.0.0.1:632/ retry=1 acquire=3000 timeout=600 Keepalive=On ProxyPassReverse / https://127.0.0.1:632/ </VirtualHost>
En el archivo /etc/apache2/ssl.conf
, compartido por otros servidores virtuales, activo el motor de cifrado e indico dónde están los certificados para crear las conexiones seguras. El servidor printers.empresa.net
debe estar dentro de ellos para que todo funcione.