Conecte-se através de um nome de domínio
Por padrão, o servidor usa um certificado autoassinado com um nome fictício, e as chaves apontam para o IP dele. Ao adicionar seu próprio domínio com um certificado válido de uma autoridade certificadora, a conexão passa a se parecer com o acesso a um site comum.
O que muda com um domínio
As chaves criadas após a mudança incluem o domínio. Os aplicativos o consultam ao conectar e validam o certificado do servidor exatamente como um navegador faz. Assim, se você mudar o servidor de IP, basta apontar o domínio para o novo endereço e as chaves continuam funcionando.
As chaves também continuam trazendo os IPs do servidor, permitindo que aplicativos que não conseguem resolver o domínio se conectem normalmente.
Antes de começar
- Um domínio ou subdomínio sob seu controle, como
vpn.example.com. Use um nome específico, não um wildcard. - Um registro DNS apontando diretamente para o IP de conexão do servidor: registro A (e registro AAAA se o servidor tiver IPv6). Aponte direto para o servidor, sem passar pelo proxy de uma CDN.
- Em um servidor gerenciado, mantenha a porta TCP
80aberta enquanto usar o domínio: ela é necessária para validar e renovar o certificado periodicamente.
Em um servidor gerenciado
- No VpnHood! MANAGER, acesse Server Farms e abra o farm desejado. Em SSL / TLS Certificates, clique em Add, insira o domínio em Domain Name e confirme em Create. O MANAGER gerará um certificado autoassinado e o abrirá em seguida.
- Edite Signing e selecione AutoSign. O MANAGER solicitará um certificado ao Let's Encrypt, que validará o domínio através do seu servidor na porta TCP
80. Ao concluir, Signature exibirá CA Signed, e o MANAGER cuidará das renovações automáticas antes do vencimento. - Em seguida, edite Visibility e escolha PublicInToken. Todas as chaves do farm passarão a incluir o domínio, e o certificado anterior do farm se tornará Public.
As chaves copiadas do MANAGER a partir de agora já trarão o domínio. Os aplicativos com chaves antigas receberão a nova versão ao se conectarem, pois Push token to clients vem ativado por padrão. Mantenha o certificado anterior do farm até lá, já que as chaves antigas dependem dele para funcionar.
Se a validação falhar, o motivo será exibido em Signing e, após algumas tentativas sem sucesso, o status voltará para Manual. Corrija o registro DNS ou libere a porta e tente selecionar AutoSign novamente.
Para conferir, abra o farm: o domínio deverá aparecer no topo da lista em Access Points.
A página individual de cada servidor também conta com uma lista de SSL / TLS Certificates. No entanto, esses certificados valem apenas para aquele servidor específico — por isso, adicione o domínio utilizado nas suas chaves diretamente no farm.
Em um servidor avulso
Um servidor avulso não obtém certificados automaticamente. Obtenha um certificado para o domínio com uma autoridade certificadora, em formato PFX com chave privada, e substitua o arquivo /opt/VpnHoodServer/storage/access/certificates/default.pfx mantendo o mesmo nome.
Depois, insira a senha do arquivo em SslCertificatesPassword e altere IsValidHostName para true, ambos sob FileAccessManager em /opt/VpnHoodServer/storage/appsettings.json. Uma nova instalação não possui esse arquivo: basta criá-lo e o servidor passará a usá-lo no lugar das configurações padrão.
O arquivo completo, substituindo o exemplo pela senha do seu certificado
{
"FileAccessManager": {
"SslCertificatesPassword": "your-pfx-password",
"IsValidHostName": true
},
"ServerConfig": {
"LogAnonymizer": true,
"AddListenerIpsToNetwork": "*"
},
"LogLevel": "Information"
}
O servidor detecta o domínio diretamente do certificado, por isso não há uma opção de configuração para ele.
Reinicie o servidor com sudo systemctl restart VpnHoodServer, ou com sudo docker restart VpnHoodServer no Docker. Se a senha estiver incorreta, ele não iniciará e exibirá The server could not start. no log.
As chaves geradas anteriormente deixarão de funcionar, pois exigem o certificado antigo. Exiba cada uma delas novamente e envie a nova chave aos usuários: as configurações e o consumo continuam inalterados. O ID de uma chave é o nome do seu arquivo em /opt/VpnHoodServer/storage/access, sem a extensão .token2.
Liste as chaves e visualize uma novamente usando o respectivo ID
sudo ls /opt/VpnHoodServer/storage/access
sudo /opt/VpnHoodServer/vhserver print 2b9d4a6e-1c3f-4e8a-9b7d-5f0e8c2a1d34
No Docker, execute o mesmo comando via sudo docker exec VpnHoodServer /app/vhsupervisor, assim como com vhserver gen.
As novas chaves utilizam o domínio e não dependem do certificado em si, continuando válidas após a renovação: basta substituir o arquivo e reiniciar o servidor.