[Auto-Sync] Atualização das configurações em srvproxy001.itguys.com.br - 2025-09-20 14:16:17
This commit is contained in:
parent
49000e3c33
commit
33ead8e471
|
|
@ -89,4 +89,7 @@ server {
|
|||
|
||||
#ssl_certificate /etc/letsencrypt/live/business.itguys.com.br/fullchain.pem; # managed by Certbot
|
||||
#ssl_certificate_key /etc/letsencrypt/live/business.itguys.com.br/privkey.pem; # managed by Certbot
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/business.itguys.com.br/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/business.itguys.com.br/privkey.pem; # managed by Certbot
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,11 +7,18 @@
|
|||
# BLOCO HTTP: Redirecionar para HTTPS
|
||||
# ==============================================================================
|
||||
server {
|
||||
if ($host = cloud.grupopralog.com.br) {
|
||||
return 301 https://$host$request_uri;
|
||||
} # managed by Certbot
|
||||
|
||||
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name cloud.grupopralog.com.br;
|
||||
location /.well-known/acme-challenge/ { root /var/www/html; }
|
||||
location / { return 301 https://$host$request_uri; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
|
|
@ -82,6 +89,9 @@ server {
|
|||
|
||||
proxy_pass http://172.16.253.12;
|
||||
}
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/cloud.grupopralog.com.br/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/cloud.grupopralog.com.br/privkey.pem; # managed by Certbot
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,100 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ==============================================================================
|
||||
# SCRIPT DE GERAÇÃO DE CERTIFICADOS SSL EM LOTE
|
||||
#
|
||||
# Descrição: Este script automatiza a obtenção de certificados Let's Encrypt
|
||||
# para todos os sites configurados no Nginx.
|
||||
# ==============================================================================
|
||||
|
||||
# --- Variáveis de Configuração ---
|
||||
SITES_DIR="/etc/nginx/sites-available"
|
||||
# Use um email válido para as notificações do Let's Encrypt
|
||||
ADMIN_EMAIL="operacoes@itguys.com.br"
|
||||
|
||||
# --- Funções de Ajuda ---
|
||||
info() { echo -e "\e[32m[INFO]\e[0m $1"; }
|
||||
error() { echo -e "\e[31m[ERRO]\e[0m $1"; }
|
||||
warn() { echo -e "\e[33m[AVISO]\e[0m $1"; }
|
||||
|
||||
# --- Início da Execução ---
|
||||
info "Iniciando o processo de geração de certificados para os sites em ${SITES_DIR}..."
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
error "Este script precisa de ser executado como root."
|
||||
fi
|
||||
|
||||
# Arrays para guardar os resultados
|
||||
SUCCESS_SITES=()
|
||||
FAILED_SITES=()
|
||||
|
||||
# Percorre cada ficheiro de configuração no diretório de sites disponíveis.
|
||||
for file in "$SITES_DIR"/*.conf; do
|
||||
# Verifica se é um ficheiro regular.
|
||||
if [[ ! -f "$file" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
echo ""
|
||||
info "----------------------------------------------------------------------"
|
||||
info "A processar o ficheiro: $(basename "$file")"
|
||||
info "----------------------------------------------------------------------"
|
||||
|
||||
# Extrai todos os server_names do ficheiro, ignorando os comentados.
|
||||
# Esta regex lida com múltiplas linhas de server_name e múltiplos domínios por linha.
|
||||
DOMAINS=$(grep -v '^\s*#' "$file" | grep "server_name" | sed 's/server_name//' | sed 's/;//' | xargs)
|
||||
|
||||
# Se não encontrar nenhum server_name, salta para o próximo ficheiro.
|
||||
if [ -z "$DOMAINS" ]; then
|
||||
warn "Nenhum 'server_name' encontrado em $file. A ignorar."
|
||||
continue
|
||||
fi
|
||||
|
||||
# Constrói a lista de argumentos '-d' para o Certbot.
|
||||
CERTBOT_DOMAIN_ARGS=""
|
||||
for domain in $DOMAINS; do
|
||||
CERTBOT_DOMAIN_ARGS+=" -d $domain"
|
||||
done
|
||||
|
||||
info "Domínios encontrados: $DOMAINS"
|
||||
info "A executar o Certbot..."
|
||||
|
||||
# Executa o Certbot.
|
||||
# O comando 'if' verifica o código de saída do Certbot para saber se foi bem-sucedido.
|
||||
if sudo certbot --nginx --non-interactive --agree-tos --no-eff-email --redirect ${CERTBOT_DOMAIN_ARGS} -m "$ADMIN_EMAIL"; then
|
||||
info "Certificado para os domínios em $(basename "$file") gerado com sucesso!"
|
||||
SUCCESS_SITES+=("$(basename "$file")")
|
||||
else
|
||||
error "Falha ao gerar o certificado para os domínios em $(basename "$file")."
|
||||
FAILED_SITES+=("$(basename "$file")")
|
||||
fi
|
||||
done
|
||||
|
||||
# --- Relatório Final ---
|
||||
echo ""
|
||||
echo "======================================================================"
|
||||
echo " RELATÓRIO FINAL DE GERAÇÃO DE CERTIFICADOS"
|
||||
echo "======================================================================"
|
||||
echo ""
|
||||
|
||||
if [ ${#SUCCESS_SITES[@]} -ne 0 ]; then
|
||||
info "Certificados gerados com SUCESSO para:"
|
||||
for site in "${SUCCESS_SITES[@]}"; do
|
||||
echo " - $site"
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
if [ ${#FAILED_SITES[@]} -ne 0 ]; then
|
||||
error "FALHA ao gerar certificados para:"
|
||||
for site in "${FAILED_SITES[@]}"; do
|
||||
echo " - $site"
|
||||
done
|
||||
warn "Verifique se os registos de DNS para os domínios acima estão a apontar corretamente para este servidor e tente novamente."
|
||||
else
|
||||
info "Todos os certificados foram gerados sem erros!"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
info "Processo concluído."
|
||||
Loading…
Reference in New Issue