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
80deve 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
- 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.
- 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. - 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.