… 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.