🧩 Exercícios: Hospedagem, Deploy e Certificados SSL/TLS
Extra Guia De Redes • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 04.1 — Compreensão e Análise de Hospedagem, Deploy e Certificados SSL/TLS
Contexto: Compreensão e Análise de Hospedagem, Deploy e Certificados SSL/TLS aplicado ao domínio de Hospedagem, Deploy e Certificados SSL/TLS.
Requisitos de Execução:
- Criar script que calcule máscaras de sub-rede IPv4 (CIDR) e determine o endereço de rede, broadcast e total de hosts válidos.
- Validar cálculos para redes /24, /28 e /30.
Resultado Esperado
IP: 192.168.1.50/24 -> Rede: 192.168.1.0 | Broadcast: 192.168.1.255 | Hosts: 254
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_04_1_SeuNome - Envie na tarefa:
Atividade Cap 04 - Hospedagem, Deploy e Certificados SSL/TLS
🔑 Gabarito de Código & Solução Comentada
# calculador_cidr.py
import ipaddress
def analisar_rede(ip_cidr):
rede = ipaddress.ip_network(ip_cidr, strict=False)
return {
"Endereco_Rede": str(rede.network_address),
"Mascara": str(rede.netmask),
"Broadcast": str(rede.broadcast_address),
"Hosts_Validos": rede.num_addresses - 2
}
print(analisar_rede("192.168.1.50/24"))
print(analisar_rede("10.0.0.1/28"))
🔍 Nível 2: Prática
Problema 04.2 — Configuração de Proxy Reverso Nginx com Load Balancing
Contexto: Configuração de Proxy Reverso Nginx com Load Balancing aplicado ao domínio de Hospedagem, Deploy e Certificados SSL/TLS.
Requisitos de Execução:
- Escrever arquivo de configuração
nginx.confcom upstream para 2 instâncias backend (Round-Robin). - Configurar headers
X-Forwarded-For,X-Real-IPe terminação TLS.
Resultado Esperado
Configuração Nginx de Proxy Reverso e Load Balancing gerada com sucesso.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_04_2_SeuNome - Envie na tarefa:
Atividade Cap 04 - Hospedagem, Deploy e Certificados SSL/TLS
🔑 Gabarito de Código & Solução Comentada
# nginx.conf
events { worker_connections 1024; }
http {
upstream backend_cluster {
server backend1.internal:8080 weight=3;
server backend2.internal:8080 weight=1;
}
server {
listen 80;
server_name api.empresa.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name api.empresa.com;
ssl_certificate /etc/ssl/certs/bundle.crt;
ssl_certificate_key /etc/ssl/private/app.key;
location / {
proxy_pass http://backend_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
}
⚡ Nível 3: Integração
Problema 04.3 — Simulador de Cliente HTTP com Tratamento de Status Codes e Retries
Contexto: Simulador de Cliente HTTP com Tratamento de Status Codes e Retries aplicado ao domínio de Hospedagem, Deploy e Certificados SSL/TLS.
Requisitos de Execução:
- Implementar cliente HTTP em Python com requisições idempotentes e política de Exponential Backoff para erros 502/503/504.
- Validar tratamento de timeouts e cabeçalhos de segurança.
Resultado Esperado
Tentativa 1: 503 Service Unavailable (Aguardando 1s...)
Tentativa 2: 200 OK (Sucesso após retry)
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_04_3_SeuNome - Envie na tarefa:
Atividade Cap 04 - Hospedagem, Deploy e Certificados SSL/TLS
🔑 Gabarito de Código & Solução Comentada
# cliente_http_resiliente.py
import time
def requisicao_com_retry(url, max_tentativas=3):
tentativa = 1
delay = 1.0
while tentativa <= max_tentativas:
print(f"Tentativa {tentativa} de conexão para {url}...")
# Simula resposta
if tentativa < 2:
status = 503
else:
status = 200
if status == 200:
print("✅ Conexão estabelecida com sucesso (200 OK)!")
return True
else:
print(f"⚠️ Erro HTTP {status}. Aguardando {delay}s...")
time.sleep(delay)
delay *= 2
tentativa += 1
print("❌ Falha crítica: serviço indisponível após múltiplas tentativas.")
return False
requisicao_com_retry("https://api.empresa.com/v1/health")
🏆 Nível 4: Desafio Corporativo
Problema 04.4 — Desafio Corporativo: Ferramenta de Diagnóstico de Rede e Latência (Ping, DNS, Socket Test)
Contexto: Desafio Corporativo: Ferramenta de Diagnóstico de Rede e Latência (Ping, DNS, Socket Test) aplicado ao domínio de Hospedagem, Deploy e Certificados SSL/TLS.
Requisitos de Execução:
- Desenvolver script completo de monitoramento que teste resolução DNS, abertura de porta TCP e latência média.
- Gerar relatório de conectividade em JSON para Prometheus/Grafana.
Resultado Esperado
=== DIAGNÓSTICO DE CONECTIVIDADE CORPORATIVA ===
DNS Resolve: 8.8.8.8 -> OK (12ms)
Porta TCP 443 (HTTPS): ABERTA
Score de Conectividade: 100%
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_04_4_SeuNome - Envie na tarefa:
Atividade Cap 04 - Hospedagem, Deploy e Certificados SSL/TLS
🔑 Gabarito de Código & Solução Comentada
# monitor_conectividade.py
import socket
import time
import json
def testar_host(host, porta=443, timeout=2.0):
inicio = time.time()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(timeout)
try:
ip = socket.gethostbyname(host)
s.connect((ip, porta))
latencia = round((time.time() - inicio) * 1000, 2)
s.close()
return {"host": host, "ip": ip, "porta": porta, "aberta": True, "latencia_ms": latencia, "status": "UP"}
except Exception as e:
return {"host": host, "porta": porta, "aberta": False, "erro": str(e), "status": "DOWN"}
hosts = ["google.com", "github.com", "cloudflare.com"]
relatorio = [testar_host(h) for h in hosts]
print(json.dumps(relatorio, indent=2))