Script para criar certificados de forma automatizada no OpenVpn
Publicado por Maria Eduarda Santos Silva (última atualização em 06/04/2024)
[ Hits: 2.593 ]
Esse script criar um certificado de OpenVpn, usando como base um certificado já criado chamado ArqBase.Ovpn, segue o link para baixar esse arquivo e o script do de criação de usuário: https://drive.google.com/drive/folders/1SOjwULVbyzv9r5TJOh6YDSsb4Ts9SX8B?usp=sharing
*Caso queira acessar a pagina o script de criação de usuário segue o link abaixo:
https://www.vivaolinux.com.br/contribuir/scripts/verScript.php?codigo=7354
ATENÇÃO!
Lembre-se de editar a parte de /sua_pasta/ dentro do script
Lembre-se de editar o ArqBase.vpn de acordo com as informações do seu servidor vpn, caso não saiba como fazer isso segue o link abaixo:
#!/bin/bash
# Caminho para o diretório easy-rsa
EASYRSA_DIR="/etc/openvpn/easy-rsa"
# Caminho para o diretório de destino
DEST_DIR="/sua_pasta/arqopenvpn"
# Caminho para o arquivo de modelo
MODEL_FILE="/sua_pasta/ArqBase.ovpn"
# Solicitar nome do usuário
read -p "Digite o nome do usuário: " USERNAME
# Verificar se o usuário já existe
if [ ! -e "$EASYRSA_DIR/pki/issued/$USERNAME.crt" ] || [ ! -e "$EASYRSA_DIR/pki/private/$USERNAME.key" ]; then
echo "Erro: Certificados para o usuário $USERNAME não encontrados. Execute o script anterior para criar o usuário."
exit 1
fi
# Copiar certificados e chaves para o diretório do cliente
CLIENT_DIR="$DEST_DIR"
cp "$EASYRSA_DIR/pki/ca.crt" "$DEST_DIR"
cp "$EASYRSA_DIR/pki/issued/$USERNAME.crt" "$DEST_DIR"
cp "$EASYRSA_DIR/pki/private/$USERNAME.key" "$DEST_DIR"
# Arquivo de modelo .ovpn
TEMPLATE_FILE="$DEST_DIR/ArqBase.ovpn"
# Arquivo de destino .ovpn
OUTPUT_FILE="$CLIENT_DIR/$USERNAME.ovpn"
# Copiar o modelo para o arquivo de destino
cp "$MODEL_FILE" "$OUTPUT_FILE"
# Conteúdo do certificado
CERT_CONTENT=$(cat "$EASYRSA_DIR/pki/issued/$USERNAME.crt")
# Conteúdo da chave
KEY_CONTENT=$(cat "$EASYRSA_DIR/pki/private/$USERNAME.key")
# Gerar o arquivo .ovpn usando awk
awk -v cert_file="$EASYRSA_DIR/pki/issued/$USERNAME.crt" -v key_file="$EASYRSA_DIR/pki/private/$USERNAME.key" '
BEGIN {
cert_start="<cert>"
cert_end="</cert>"
key_start="<key>"
key_end="</key>"
in_cert_block = 0
in_key_block = 0
}
{
if ($0 ~ cert_start) {
in_cert_block = 1
print $0
while ((getline line < cert_file) > 0) {
print "" line
}
} else if (in_cert_block && $0 ~ cert_end) {
in_cert_block = 0
print $0
} else if ($0 ~ key_start) {
in_key_block = 1
print $0
while ((getline line < key_file) > 0) {
print "" line
}
} else if (in_key_block && $0 ~ key_end) {
in_key_block = 0
print $0
} else if (!in_cert_block && !in_key_block) {
print $0
}
}' "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp" && mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE"
echo "Usuário $USERNAME criado com sucesso. Certificados e arquivo $USERNAME.ovpn foram copiados para $DEST_DIR"
Ligar máquinas virtuais Xen seguindo ordem de criação
Programação do Dia da Tv Aberta
Bloqueando o acesso à internet
Gerenciamento do Samba com Dialog
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (5)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









