-
Notifications
You must be signed in to change notification settings - Fork 0
Certificado e Chaves do Servidor
Para encriptar o tráfego de rede o OpenVPN utiliza certificados digitais.
O servidor OpenVPN suporta autenticação bidirecional, o que implica que não só cliente se autentica com o servidor como o servidor se autentica com o cliente. Aqui configuraremos uma Autoridade Certificadora (CA) para gerar o certificado e a chave para o servidor. Será utilizado o EasyRSA.
O primeiro passo é copiar os scripts do EasyRSA:
cp -r /usr/share/easy-rsa/ /etc/openvpn
Vamos criar um diretório para armazenar as chaves:
mkdir -p /etc/openvpn/easy-rsa/keys
O EasyRSA possui um arquivo de variáveis que pode ser editado para criar certificados para pessoas, negócios ou qualquer entidade escolhida. Esta informação é copiada para os certificados e para as chaves e ajudam a identificá-los mais tarde.
vim /etc/openvpn/easy-rsa/vars
Os valores abaixo devem ser ser editados de acordo co sua preferência:
export KEY_COUNTRY="BR"
export KEY_PROVINCE="DF"
export KEY_CITY="Brasília"
export KEY_ORG="PencilLabs"
export KEY_EMAIL="admin@pencillabs.com"
export KEY_OU="Devops"
export KEY_NAME="server"
Agora geramos os parâmetros Diffie-Hellman:
openssl dhparam -out /etc/openvpn/dh2048.pem 2048
Agora entrams na pasta onde estão os scripts EasyRSA:
cd /etc/openvpn/easy-rsa
Inicializamos então o PKI (Public Key Infrastructure):
. ./vars
Uma mensagem de aviso será exibida, mas como ainda não há chaves, não há com o que se preocupar:
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
Limpamos o diretório de trabalho para apagar chaves antigas e ter espaço para criar novas:
./clean-all
Finalmente criamos a autoridade certificadora invocando o script abaixo. Serão feitas várias perguntas para confirmar os valores que foram definidos anteriormente no arquivo de variáveis:
./build-ca
Para cada passo pressione ENTER
.
Ainda no diretório /etc/openvpn/easy-rsa
executamos o comando para gerar a chave do servidor, onde server
é o mesmo valor da variável KEY_NAME
definida no arquivo de variáveis.
./build-key-server server
Confirme as perguntas. Quando as seguintes questões aparecerem:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Deixe as duas em branco pressionando ENTER
. Responda y
para as próximas duas perguntas:
Sign the certificate? [y/n]
1 out of 1 certificate requests certified, commit? [y/n]
Por fim, a seguinte mensagem deve ser exibida:
Write out database with 1 new entries
Data Base Updated
O OpenVPN espera que a CA do servidor, certificado e chave estejam em /etc/openvpn
. Portanto é necessário copiar esses arquivos:
cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt} /etc/openvpn
O servidor está pronto para utilizar:
service openvpn start
ou systemctl start openvpn