Conectar mediante un nombre de dominio
De forma predeterminada, el servidor utiliza un certificado autofirmado y sus claves de acceso apuntan a su dirección IP. Si le asignas un dominio propio con un certificado emitido por una autoridad de certificación, la conexión parecerá una visita a un sitio web común.
Ventajas de usar un dominio
Las claves creadas después del cambio incluirán el dominio. Las aplicaciones lo resolverán al conectarse y verificarán el certificado como lo hace un navegador. Así, si cambias la IP del servidor, solo tendrás que actualizar el dominio para que las claves sigan funcionando.
Las claves también conservan las direcciones IP del servidor, por lo que cualquier aplicación que no pueda resolver el dominio se conectará como antes.
Antes de empezar
- Un dominio o subdominio bajo tu control, como
vpn.example.com. Usa un nombre único, no un comodín. - Un registro DNS que apunte a la IP de conexión del servidor: un registro A (y un registro AAAA si tiene IPv6). Debe apuntar directamente al servidor, sin pasar por el proxy de una CDN.
- En un servidor administrado, mantén abierto el puerto TCP
80mientras uses el dominio: se utiliza para verificar y renovar el certificado automáticamente cada pocos meses.
En un servidor administrado
- En VpnHood! MANAGER, ve a Server Farms y abre tu granja. En SSL / TLS Certificates, selecciona Add, introduce el dominio en Domain Name y pulsa Create. MANAGER creará un certificado autofirmado y lo abrirá.
- Edita Signing y elige AutoSign. MANAGER solicitará un certificado a Let's Encrypt, que verificará el dominio mediante el puerto TCP
80de tu servidor. Al terminar, Signature mostrará CA Signed y MANAGER renovará el certificado automáticamente antes de que caduque. - Luego edita Visibility y elige PublicInToken. A partir de ese momento, todas las claves de la granja incluirán el dominio y el certificado anterior pasará a ser Public.
Las claves que copies desde MANAGER incluirán el dominio. Las aplicaciones con claves antiguas recibirán la nueva al conectarse, ya que Push token to clients está activo por defecto. Conserva el certificado anterior hasta entonces para no interrumpir el acceso a esas claves.
Si la verificación falla, Signing indicará el motivo y, tras varios intentos, volverá a Manual. Corrige el registro DNS o abre el puerto y vuelve a seleccionar AutoSign.
Para comprobarlo, abre la granja: en Access Points, el dominio aparecerá en primer lugar.
La página de cada servidor también incluye una sección SSL / TLS Certificates, pero esos certificados solo se aplican a ese servidor. Añade el dominio a nivel de granja para que se incluya en tus claves.
En un servidor independiente
Un servidor independiente no puede obtener un certificado por sí mismo. Consigue uno para el dominio a través de una autoridad de certificación, en formato PFX con su clave privada, y reemplaza /opt/VpnHoodServer/storage/access/certificates/default.pfx manteniendo el mismo nombre.
Luego, introduce la contraseña del archivo en SslCertificatesPassword y define IsValidHostName como true, ambos bajo FileAccessManager en /opt/VpnHoodServer/storage/appsettings.json. Una instalación nueva no incluye este archivo: créalo y, a partir de ese momento, el servidor lo utilizará en lugar de la configuración inicial.
El archivo completo, con la contraseña de tu certificado en lugar de la de ejemplo
{
"FileAccessManager": {
"SslCertificatesPassword": "your-pfx-password",
"IsValidHostName": true
},
"ServerConfig": {
"LogAnonymizer": true,
"AddListenerIpsToNetwork": "*"
},
"LogLevel": "Information"
}
El servidor toma el dominio directamente del certificado, por lo que no requiere ningún ajuste adicional.
Reinicia el servidor con sudo systemctl restart VpnHoodServer, o con sudo docker restart VpnHoodServer si usas Docker. Si la contraseña no es correcta, no iniciará y el registro indicará The server could not start..
Las claves creadas antes del cambio dejarán de funcionar, ya que esperan el certificado anterior. Genera cada una de nuevo y compártela con tus usuarios: sus opciones y uso seguirán siendo los mismos. El ID de una clave es el nombre de su archivo en /opt/VpnHoodServer/storage/access, sin .token2.
Lista las claves y vuelve a mostrar una por su ID
sudo ls /opt/VpnHoodServer/storage/access
sudo /opt/VpnHoodServer/vhserver print 2b9d4a6e-1c3f-4e8a-9b7d-5f0e8c2a1d34
En Docker, ejecuta el mismo comando mediante sudo docker exec VpnHoodServer /app/vhsupervisor, igual que con vhserver gen.
Las nuevas claves incluyen el dominio y ya no dependen del certificado en sí, por lo que seguirán funcionando al renovarlo: solo reemplaza el archivo y reinicia el servidor.