Certificats¶
Els certificats SSL haurien d'usar-se per assegurar l'accés web i les connexions a escriptoris virtuals amb visualitzadors.
IsardVDI generarà un certificat genèric autofirmat per defecte en instal·lar per primera vegada si no configures paràmetres de letsencrypt. Per això els navegadors preguntaran per l'acceptació del certificat en el primer accés a la web d'IsardVDI...
Si configures paràmetres de domini letsencrypt a isardvdi.cfg llavors generarà un per tu i l'auto-renovarà (recorda que hauríeu de mantenir els ports 80 i 443 del teu servidor oberts per accés extern a través d'aquest domini). També, si no hi ha certificat present generarà un nou autofirmat per usar-lo per defecte.
També pots usar el teu propi certificat reemplaçant l'auto-generat /opt/isard/certs/default/chain.pem amb el teu certificat concatenat.
Això funciona per a tots els sabors (portal, video, tot-en-un) ja que tots usen la mateixa configuració de certificats.
Els certificats Spice necessiten ser autofirmats i s'autogeneren i distribueixen automàticament a hipervisors auto-registrats. Es mantenen a la carpeta /opt/isard/certs/viewers.
Gestionar certificats¶
Els certificats s'emmagatzemen a la ruta /opt/isard/certs/ on sempre estarà l'autofirmat o letsencrypt amb el nom chain.pem.
Si estàs usant certificats autofirmats o letsencrypt autogenerats no necessites fer res més.
Pots configurar el teu propi certificat com es va dir abans. Segueix aquesta guia per generar el teu custom-xxxxx-chain.pem des dels teus certificats.
Certificat Web personalitzat¶
Per crear el teu custom-portal-chain.pem (funciona per a tots els sabors) has de concatenar (en aquest ordre) el certificat del servidor i clau-del-servidor:
Certificat Web comercial personalitzat¶
En cas d'un certificat comercial hauríeu d'incloure la cadena intermèdia també al fullchain custom-portal-chain.pem:
# domain.crt: certificat del domini
# intermediate.pem: certificat intermedi
# domain.key: clau privada
cat domain.crt intermediate.pem domain.key > /opt/isard/certs/default/custom-portal-chain.pem
Certificat Web letsencrypt personalitzat¶
En cas d'un certificat letsencrypt (no l'autogenerat per IsardVDI, un que vas sol·licitar tu mateix):
Certificat personalitzat per a tots els sabors¶
Tots els sabors d'IsardVDI (portal, video, tot-en-un, hipervisor) usen la mateixa configuració de certificats. No hi ha certificat de video separat - tot el tràfic web usa el mateix fitxer custom-portal-chain.pem.
Exemples amb certificats de proveïdors¶
Certificat comercial¶
Posa el teu certificat concatenat amb el nom correcte a /opt/isard/certs/default/ (reemplaça tot el que ja estigui a aquesta carpeta).
Després reinicia el contenidor portal (o video).
Ara pots connectar al servidor IsardVDI usant el CN qualificat com es proporciona amb el teu certificat.
NOTA: Els certificats wildcard també han estat validats amb aquest procediment per funcionar com s'esperava. Veure exemple a sota:
Exemple certificat SSL wildcard¶
Per exemple tens un certificat comercial wildcard d'una empresa (diguem que vas comprar *.isardvdi.com). Obtindràs aquests arxius del teu proveïdor de certificats:
- wildcard_isardvdi_com.crt.pem: El teu certificat wildcard.
- GandiStandardSSLCA2.pem: Aquest és el certificat intermedi de l'autoritat certificadora (en aquest exemple és gandi.net el proveïdor). Sempre pots obtenir aquest certificat copiant o exportant des de la configuració de certificats del teu navegador o descarregant-lo des de la seva pàgina web (ex.
wget -q -O - https://www.gandi.net/static/CAs/GandiStandardSSLCA2.pem) - wildcard_isardvdi_com.key.pem: La clau privada del teu certificat.
Necessitarem transformar aquests arxius en la cadena:
cat wildcard_isardvdi_com.crt.pem GandiStandardSSLCA2.pem wildcard_isardvdi_com.key.pem > /opt/isard/certs/default/chain.pem
Després reinicia el contenidor portal (o video).
Resetejar certificats¶
Si vas reemplaçar certificats i res va funcionar es recomana començar el procés de nou resetejant certificats. Si manipules certificats a la carpeta podria confondre el codi de processament de certificats d'IsardVDI.
Sempre pots fer que el teu IsardVDI funcioni de nou amb certificats autofirmats eliminant la carpeta /opt/isard/certs/default. IsardVDI generarà i configurarà un nou certificat autofirmat de nou. El procediment serà:
Podríeu haver fet una còpia de seguretat dels vostres certificats autofirmats que funcionaven prèviament i ara també podríeu copiar aquests a la carpeta de certificats per defecte en lloc de generar nous.
Solucionar problemes amb certificats¶
Problemes comuns i solucions¶
El certificat no carrega/El navegador encara mostra auto-signat¶
-
Comprova que el certificat existeix i és vàlid:
-
Reinicia el contenidor portal:
-
Comprova els logs del contenidor:
La generació del certificat Let's Encrypt ha fallat¶
-
Verifica que el domini apunta al teu servidor:
-
Comprova que els ports 80/443 són accessibles:
-
Comprova els logs de Let's Encrypt:
Recarregues contínues d'HAProxy (Arreglat en versions recents)¶
Si experimentes recarregues freqüents d'HAProxy, assegura't d'usar la darrera versió que inclou: - Un sol dimoni cron per renovacions de certificats (no processos crond duplicats) - Un sol disparador de recàrrega per operació de certificat (només recarregues basades en inotify)
Problemes de renovació de certificats¶
- Hora de renovació: Els intents de renovació automàtica es fan diàriament a les 2:00 AM
- Prova de renovació manual:
Restabliment d'emergència de certificats¶
Restablir a certificats auto-signats¶
Si els certificats es corrompen o esdevenen inutilitzables:
# Atura IsardVDI
docker-compose down
# Elimina només els certificats per defecte (FES CÒPIA DE SEGURETAT PRIMER si cal)
sudo rm -rf /opt/isard/certs/default/*
# Reinicia - generarà nous certificats auto-signats
docker-compose up -d
Restablir certificats Let's Encrypt¶
Si els certificats Let's Encrypt han expirat o estan corromputs i vols sol·licitar-ne de nous:
# Atura IsardVDI
docker-compose down
# Elimina tant els certificats per defecte com els de letsencrypt (FES CÒPIA DE SEGURETAT PRIMER si cal)
sudo rm -rf /opt/isard/certs/default/*
sudo rm -rf /opt/isard/certs/letsencrypt/*
# Assegura't que DOMAIN i LETSENCRYPT_EMAIL estan configurats a isardvdi.cfg
# Reinicia - sol·licitarà nous certificats Let's Encrypt
docker-compose up -d
Flux intern de certificats¶
Comprendre com funcionen els certificats internament a IsardVDI:
Pipeline de processament de certificats¶
- Inici del contenidor (
haproxy-docker-entrypoint.sh): - Comprova si
/certs/chain.pemexisteix i no està buit - Si falta → activa
auto-generate-certs.sh(auto-signat) -
Si present → usa el certificat existent
-
Flux Let's Encrypt (
letsencrypt.sh): - S'executa durant la preparació del contenidor si
LETSENCRYPT_DOMAINiLETSENCRYPT_EMAILestan configurats - Usa
certbot certonly --standaloneal port 80 durant l'inici - Desplega el certificat via
letsencrypt-hook-deploy-concatenante.sh -
Crea
/etc/environment.letsencryptper variables d'entorn del cron -
Desplegament de certificats (
letsencrypt-hook-deploy-concatenante.sh): - Concatena
fullchain.pem+privkey.pem→/certs/chain.pem - Usa operacions de fitxer atòmiques (fitxer temporal → mou)
-
Activa la recàrrega d'HAProxy via monitoratge inotify
-
Renovació automàtica (
letsencrypt-renew-cron.sh): - Programat diàriament a les 2:00 AM via cron d'Alpine Linux (
/etc/periodic/daily/) - Carrega variables d'entorn de
/etc/environment.letsencrypt - Usa
certbot renew --http-01-port 8080 -
Crida automàticament el hook de desplegament en renovació exitosa
-
Integració HAProxy:
- Terminació SSL: HAProxy es vincla al port 8443 amb
ssl crt /certs/chain.pem - Frontend TCP: El port 443 enruta al terminador SSL al 8443
- Monitoratge de fitxers:
inotifydvigila/certs/chain.pem:cper canvis - Recàrrega automàtica: HAProxy es recarrega quan el fitxer de certificat canvia
Ubicacions de fitxers i propòsits¶
| Ruta | Propòsit |
|---|---|
/opt/isard/certs/default/chain.pem |
Certificat primari - auto-generat (autofirmat), Let's Encrypt, o personalitzat |
/opt/isard/certs/letsencrypt/ |
Directori de treball de Let's Encrypt (volume mount) |
/opt/isard/certs/viewers/ |
Certificats Spice per hipervisors |
⚠️ Important: Si inicialment vas començar amb certificats autofirmats i vols canviar a Let's Encrypt, has d'eliminar els certificats existents primer:
docker-compose down
rm -rf /opt/isard/certs/default/*
# Actualitza el teu isardvdi.cfg amb DOMAIN i LETSENCRYPT_EMAIL
docker-compose up -d
Ordre de prioritat de certificats¶
- Certificat personalitzat (
custom-portal-chain.pem) - prioritat més alta - Certificat Let's Encrypt (si està configurat i obtingut amb èxit)
- Certificat auto-signat (generat automàticament com a fallback)
Si us plau consulteu la secció admin faq sobre certificats per solució de problemes addicionals.