Script para criar certificados de forma automatizada no OpenVpn
Publicado por Maria Eduarda Santos Silva (última atualização em 06/04/2024)
[ Hits: 2.647 ]
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"
Criação de Usuarios , Grupo e instalação do servidor de arquivos samba
Gerar arquivos CSV no postgresql
gera saída com substituindo coluna por outra (substr)
Bashblog v3.0 - cria um microblog em HTML5
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Tem como instalar o Untapped no Linux? (0)
Podem me chamar de 1mbecil :) (3)
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (3)
Servidor de DNS BIND Ubuntu server (0)
Debian Stable travado em atualizações: dist-upgrade não resolve [RESOL... (11)









