# Renovación de Certificado SSL para xgestion.com.ar

## Fecha de implementación
**30 de Mayo de 2026**

## Problema Original
- El certificado SSL de xgestion.com.ar estaba **EXPIRADO**
- El dominio apuntaba directamente a la IP del servidor EC2 (34.199.75.144)
- El servidor usaba certificado Let's Encrypt que no se renovó automáticamente

## Solución Implementada

### 1. Certificado SSL en AWS ACM
Se creó un nuevo certificado SSL en AWS Certificate Manager:

- **ARN**: `arn:aws:acm:us-east-1:788424700802:certificate/fce3845c-d520-4d7a-92b0-87f4f5b90e3e`
- **Dominios cubiertos**:
  - xgestion.com.ar
  - *.xgestion.com.ar
  - www.xgestion.com.ar
- **Estado**: ISSUED ✅
- **Validación**: DNS (automática)
- **Renovación**: Automática por AWS

### 2. Configuración del Load Balancer
Se utilizó el Load Balancer existente **LB-VerenaPay** para servir el tráfico de xgestion.com.ar:

- **Load Balancer**: LB-VerenaPay
- **DNS**: LB-VerenaPay-468402085.us-east-1.elb.amazonaws.com
- **Hosted Zone ID**: Z35SXDOTRQ7X7K

#### Componentes creados:

**Target Group**: xGestion-TargetGroup
- ARN: `arn:aws:elasticloadbalancing:us-east-1:788424700802:targetgroup/xGestion-TargetGroup/13587337443234cb`
- Protocolo: HTTP
- Puerto: 80
- Instancia registrada: i-082f9c9601aa4bd15 (EC2-xGestion-AWS-Production-Server)

**Certificado agregado al Listener HTTPS (puerto 443)**
- Se agregó el certificado de xgestion.com.ar al listener existente
- El Load Balancer ahora maneja múltiples certificados (SNI)

**Reglas de enrutamiento creadas**:
- Prioridad: 10
- Condición: Host header = xgestion.com.ar, *.xgestion.com.ar, www.xgestion.com.ar
- Acción: Forward a xGestion-TargetGroup
- Aplicado en listeners HTTP (80) y HTTPS (443)

### 3. Actualización DNS en Route53
Se actualizaron los registros DNS para que apunten al Load Balancer:

**Registros modificados**:
- `xgestion.com.ar` → Alias al Load Balancer
- `*.xgestion.com.ar` → Alias al Load Balancer

**Registros de validación agregados**:
- `_8c0b58eb6c128351f73aa177119b5a71.xgestion.com.ar` → CNAME de validación ACM
- `_2d703cb8e7adac6460de152908286b67.www.xgestion.com.ar` → CNAME de validación ACM

## Arquitectura Resultante

```
Internet
    │
    ▼
┌─────────────────────────────────────────┐
│  Route53 DNS                            │
│  - xgestion.com.ar                      │
│  - *.xgestion.com.ar                    │
└─────────────────────────────────────────┘
    │
    ▼
┌─────────────────────────────────────────┐
│  Application Load Balancer              │
│  LB-VerenaPay                           │
│  - Puerto 80 (HTTP)                     │
│  - Puerto 443 (HTTPS)                   │
│  - Certificados SSL (SNI):              │
│    • *.verena.com.ar                    │
│    • xgestion.com.ar                    │
└─────────────────────────────────────────┘
    │
    ├─► verena.com.ar → VerenaPay-TargetGroup
    │
    └─► xgestion.com.ar → xGestion-TargetGroup
                              │
                              ▼
                    ┌──────────────────────┐
                    │  EC2 Instance        │
                    │  i-082f9c9601aa4bd15 │
                    │  34.199.75.144       │
                    │  Puerto 80           │
                    └──────────────────────┘
```

## Ventajas de esta Solución

1. **Renovación automática**: AWS ACM renueva automáticamente los certificados
2. **Sin costo adicional**: Se usa el Load Balancer existente
3. **Alta disponibilidad**: El Load Balancer distribuye el tráfico
4. **Múltiples dominios**: Un solo Load Balancer maneja verena.com.ar y xgestion.com.ar
5. **SNI (Server Name Indication)**: Múltiples certificados SSL en el mismo Load Balancer
6. **No afecta otros dominios**: Las reglas de enrutamiento mantienen el tráfico separado

## Impacto en el Acceso

### ✅ NO afecta:
- Todos los subdominios de xgestion.com.ar funcionan igual
- El tráfico se enruta correctamente según el host header
- Los dominios de verena.com.ar no se ven afectados
- La aplicación en el servidor EC2 no requiere cambios

### ⚠️ Cambios:
- El tráfico ahora pasa por el Load Balancer antes de llegar al servidor
- La IP de origen que ve el servidor es la del Load Balancer (puede requerir configuración de X-Forwarded-For si se usa en logs)

## Verificación

### Verificar el certificado SSL:
```bash
curl -vI https://xgestion.com.ar 2>&1 | findstr /i "expire subject issuer"
```

### Verificar el Target Group:
```bash
aws elbv2 describe-target-health \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:788424700802:targetgroup/xGestion-TargetGroup/13587337443234cb \
  --region us-east-1 \
  --profile xgestion
```

Estado esperado: `"State": "healthy"`

### Verificar las reglas del Load Balancer:
```bash
aws elbv2 describe-rules \
  --listener-arn arn:aws:elasticloadbalancing:us-east-1:788424700802:listener/app/LB-VerenaPay/6c531b09e6e91e26/d0bc4d973b6668f6 \
  --region us-east-1 \
  --profile xgestion
```

## Mantenimiento

### Renovación del certificado
**No requiere acción manual**. AWS ACM renueva automáticamente los certificados 60 días antes de su vencimiento.

### Monitoreo
- El certificado se puede monitorear desde la consola de ACM
- Los health checks del Target Group alertan si el servidor tiene problemas
- CloudWatch tiene métricas del Load Balancer

## Rollback (si es necesario)

Si necesitás volver a la configuración anterior:

```bash
# 1. Restaurar los registros DNS a la IP directa
aws route53 change-resource-record-sets \
  --hosted-zone-id Z1DQ5U0D1VV4BJ \
  --change-batch '{
    "Changes": [{
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "xgestion.com.ar.",
        "Type": "A",
        "TTL": 300,
        "ResourceRecords": [{"Value": "34.199.75.144"}]
      }
    }]
  }' \
  --profile xgestion \
  --region us-east-1

# 2. Eliminar la instancia del Target Group
aws elbv2 deregister-targets \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:788424700802:targetgroup/xGestion-TargetGroup/13587337443234cb \
  --targets Id=i-082f9c9601aa4bd15 \
  --region us-east-1 \
  --profile xgestion
```

## Referencias

- **Perfil AWS**: xgestion
- **Región AWS**: us-east-1
- **Hosted Zone ID**: Z1DQ5U0D1VV4BJ (xgestion.com.ar)
- **Servidor EC2**: i-082f9c9601aa4bd15 (34.199.75.144)
- **Load Balancer**: LB-VerenaPay
- **Certificado ACM**: fce3845c-d520-4d7a-92b0-87f4f5b90e3e

---

**Implementado por**: Amazon Q  
**Fecha**: 30 de Mayo de 2026  
**Estado**: ✅ Completado
