# Renovar certificado

# Tutorial: Renovar certificado canovastv.es y convertir a PFX para Emby

## Requisitos

- Servidor con certbot instalado
- OpenSSL instalado
- Acceso SSH con privilegios de root o sudo

## Paso 1: Verificar estado actual del certificado

```bash
certbot certificates
```

Esto muestra el nombre del certificado, fecha de expiración y rutas de los archivos.

## Paso 2: Renovar el certificado

Si el certificado está próximo a expirar (menos de 30 días):

```bash
certbot renew --force-renewal --cert-name canovastv.es
```

Si falló la renovación anterior (config corrupta), crear uno nuevo:

```bash
certbot certonly --standalone -d canovastv.es \
  --preferred-challenges http \
  --agree-tos \
  -m admin@canovastv.es \
  --non-interactive
```

> **Nota:** El puerto 80 debe estar libre durante la renovación.

## Paso 3: Verificar archivos generados

```bash
ls -la /etc/letsencrypt/live/canovastv.es*/
```

Archivos necesarios:

| Archivo | Descripción |
|---|---|
| `cert.pem` | Certificado del dominio |
| `chain.pem` | Certificado CA intermedio |
| `fullchain.pem` | cert + chain juntos |
| `privkey.pem` | Clave privada |

## Paso 4: Convertir a formato PKCS#12 (PFX)

Unir todo en un solo archivo `.pfx` para Emby:

```bash
openssl pkcs12 -export \
  -out canovastv_es.pfx \
  -inkey /etc/letsencrypt/live/canovastv.es-0001/privkey.pem \
  -in /etc/letsencrypt/live/canovastv.es-0001/fullchain.pem \
  -certfile /etc/letsencrypt/live/canovastv.es-0001/chain.pem \
  -passout pass:TU_CONTRASEÑA_AQUI
```

### Parámetros:

- `-out`: ruta del archivo PFX de salida
- `-inkey`: clave privada (privkey.pem)
- `-in`: certificado completo (fullchain.pem)
- `-certfile`: cadena de certificados (chain.pem)
- `-passout`: contraseña protecci\ón del PFX (formato `pass:contrasena`)

## Paso 5: Importar a Emby

1. Acceder al panel de Emby: `http://emby-server:8096/web/index.html#!/dashboard.html`
2. Ir a **Panel de control** (Dashboard)
3. Sección **HTTPS** → **Certificado HTTPS**
4. Subir el archivo `.pfx`
5. Introducir la contraseña del PFX
6. Guardar cambios
7. Habilitar HTTPS en Emby

## Paso 6: Verificar

```bash
openssl pkcs12 -info -in canovastv_es.pfx -passin pass:TU_CONTRASEÑA_AQUI
```

Debe mostrar el certificado, clave privada y cadena CA.

## Renovación automática

Certbot ya renueva automáticamente los certificados si está activo el timer:

```bash
systemctl status certbot.timer
systemctl enable --now certbot.timer
```

## Solución de errores comunes

### Certbot: "renewal config file is missing a required file reference"

El archivo de renovación está corrupto. Regenerar con `certbot certonly`.

### Erro de permisos al generar PFX

```bash
chmod 600 canovastv_es.pfx
```

### Puerto 80 ocupado durante renovación

```bash
nginx -s stop    # o el servicio que use el puerto 80
# renovar con certbot
nginx            # reiniciar después
```

### Emby no acepta el certificado

Verificar que:
- El PFX incluye fullchain + privkey
- La contraseña es correcta
- El nombre del dominio coincide con el certificado

## Archivos de referencia

- Certificados: `/etc/letsencrypt/live/canovastv.es*/`
- Logs: `/var/log/letsencrypt/letsencrypt.log`
- Configuración: `/etc/letsencrypt/renewal/`