VpnHood!

Connettiti tramite un nome di dominio

Per impostazione predefinita, il server utilizza un certificato autofirmato con un nome fittizio e le chiavi di accesso puntano al suo indirizzo IP. Associando un tuo nome di dominio con certificato emesso da una CA, ogni connessione apparirà identica a quella verso un normale sito web.

I vantaggi di un dominio

Le chiavi generate dopo la modifica integrano il dominio. Le app lo interrogano alla connessione e verificano il certificato come farebbe un browser: se cambi l'indirizzo IP del server, basta aggiornare il puntamento del dominio e le chiavi continueranno a funzionare.

Le chiavi mantengono comunque gli indirizzi IP del server: le app che non riescono a risolvere il dominio si collegheranno come prima.

Prima di iniziare

  • Un dominio o sottodominio di tua proprietà, come vpn.example.com. Utilizza un host singolo, non un record wildcard.
  • Un record DNS che punti all'IP di connessione del server: un record A (e un record AAAA se il server dispone di IPv6). Indirizzalo direttamente al server, senza passare per il proxy di una CDN.
  • Su un server gestito, la porta TCP 80 deve rimanere aperta per tutto il periodo d'uso del dominio: serve a convalidare il certificato e a rinnovarlo automaticamente ogni pochi mesi.

Su un server gestito

  1. In VpnHood! MANAGER, apri Server Farms e seleziona la farm. In SSL / TLS Certificates, scegli Add, inserisci il dominio in Domain Name e seleziona Create. MANAGER genererà e aprirà un certificato autofirmato dedicato.
  2. Modifica Signing e scegli AutoSign. MANAGER richiederà un certificato a Let's Encrypt, che convaliderà il dominio tramite il server sulla porta TCP 80. Al termine, Signature mostrerà CA Signed e MANAGER rinnoverà il certificato in autonomia prima della scadenza.
  3. Poi modifica Visibility e imposta PublicInToken. Da questo momento ogni chiave della farm includerà il dominio e il certificato precedente passerà a Public.

Tutte le chiavi copiate da MANAGER d'ora in avanti conterranno il dominio. Le app con le chiavi precedenti riceveranno la nuova versione alla prima connessione, grazie a Push token to clients attivo per impostazione predefinita. Mantieni il vecchio certificato finché tutti i client non si saranno aggiornati.

Se la verifica non va a buon fine, Signing ne segnala il motivo e, dopo vari tentativi, torna a Manual. Correggi il record DNS o apri la porta richiesta, quindi seleziona nuovamente AutoSign.

Per verificare, visualizza la farm: in Access Points, il dominio comparirà come prima voce.

Anche la pagina del singolo server include una sezione SSL / TLS Certificates. I certificati presenti lì sono validi solo per quel server: per includere il dominio nelle chiavi, aggiungilo a livello di farm.

Su un server autonomo

Un server autonomo non può ottenere un certificato da solo. Richiedine uno per il dominio a un'autorità di certificazione, in formato PFX con chiave privata, e sostituiscilo a /opt/VpnHoodServer/storage/access/certificates/default.pfx, mantenendo lo stesso nome.

Inserisci quindi la password del file in SslCertificatesPassword e imposta IsValidHostName su true, entrambi sotto FileAccessManager in /opt/VpnHoodServer/storage/appsettings.json. In una nuova installazione questo file non esiste: crealo e da quel momento il server lo utilizzerà al posto delle impostazioni iniziali.

L'intero file, con la password del tuo certificato al posto di quella di esempio

{
  "FileAccessManager": {
    "SslCertificatesPassword": "your-pfx-password",
    "IsValidHostName": true
  },
  "ServerConfig": {
    "LogAnonymizer": true,
    "AddListenerIpsToNetwork": "*"
  },
  "LogLevel": "Information"
}

Il server ricava il dominio direttamente dal certificato, quindi non è richiesta alcuna impostazione dedicata.

Riavvia il server con sudo systemctl restart VpnHoodServer, oppure con sudo docker restart VpnHoodServer se usi Docker. In caso di password errata non si avvierà e il log mostrerà The server could not start.

Le chiavi create prima della modifica smetteranno di funzionare, poiché associate al vecchio certificato. Rigenera ciascuna chiave e fornisci quella nuova agli utenti: opzioni e statistiche di utilizzo rimarranno invariate. L'ID della chiave corrisponde al nome del rispettivo file in /opt/VpnHoodServer/storage/access, senza .token2.

Visualizza l'elenco delle chiavi, quindi stampane una indicandone l'ID

sudo ls /opt/VpnHoodServer/storage/access
sudo /opt/VpnHoodServer/vhserver print 2b9d4a6e-1c3f-4e8a-9b7d-5f0e8c2a1d34

In Docker, esegui lo stesso comando tramite sudo docker exec VpnHoodServer /app/vhsupervisor, come per vhserver gen.

Le nuove chiavi includono il dominio e non dipendono più dal certificato specifico, continuando a funzionare anche dopo il rinnovo: basterà sostituire il file e riavviare il server.

Passaggi successivi