SSL/TLS certifikáty
SSL/TLS certifikáty sú základným prvkom zabezpečenia webových služieb. Umožňujú šifrovanú komunikáciu medzi klientom (napr. webovým prehliadačom) a serverom, čím zaručujú dôvernosť, integritu a autenticitu prenášaných dát.
V prostredí TUKE Cloud je možné certifikáty získavať dvoma spôsobmi:
- Harika – manuálne generovanie certifikátov
- Let's Encrypt – automatizované generovanie pomocou DNS-01 validácie
Obe metódy sú plne podporované infraštruktúrou *.virtual.cloud.tuke.sk.
🛡️ Čo je SSL/TLS certifikát?
SSL (Secure Sockets Layer) a jeho nástupca TLS (Transport Layer Security) sú kryptografické protokoly, ktoré zabezpečujú komunikáciu v sieti.
Certifikát obsahuje:
- verejný kľúč servera,
- názov domény (FQDN),
- informácie o vydavateľovi (CA),
- dobu platnosti,
- kryptografický podpis autority.
Podpis certifikačnej autority (CA) potvrdzuje, že verejný kľúč skutočne patrí danej doméne → klient tak vie, že komunikuje so správnym serverom.
🔒 Prečo používať SSL/TLS certifikáty?
-
Šifrovanie komunikácie Chráni pred odpočúvaním (MITM útoky, sniffing).
-
Autentifikácia servera Klient má istotu, že komunikuje so správnou doménou.
-
Bezpečnosť používateľov HTTPS je dnes štandard — bez certifikátu prehliadače zobrazujú varovania.
-
Lepšie SEO a reputácia Vyhľadávače preferujú zabezpečené stránky.
1) Manuálne certifikáty cez Hariku
Harika je interný nástroj TUKE určený na generovanie vlastných certifikátov bez externých CA. Je vhodný pre interné služby, testovacie prostredia alebo systémy, kde potrebujete plnú kontrolu nad parametrami certifikátu.
Výhody Hariky
- plná kontrola nad parametrami (algoritmy, platnosť, SAN záznamy),
- certifikát môžete použiť na akýchkoľvek interných službách,
- žiadna závislosť na externých službách.
Nevýhody
- certifikáty je potrebné manuálne obnovovať,
- nie sú dôveryhodné mimo TUKE (self-signed alebo interná CA),
- administratívna záťaž.
Ako požiadať o certifikát cez Hariku
-
Pripravte si:
-
doménu (FQDN),
- účel certifikátu (web, API, mail server),
-
voliteľné špecifikácie (algoritmus, dĺžka kľúča).
-
Pošlite email na: 📧 ssl@helpdesk.tuke.sk Predmet: Žiadosť o SSL certifikát cez Hariku
-
Uveďte:
-
názov domény (napr. mojaappka.virtual.cloud.tuke.sk),
- účel použitia,
-
voliteľné špeciálne požiadavky.
-
Po spracovaní požiadavky dostanete:
-
certifikát (.crt),
- súkromný kľúč (.key),
- prípadne CA chain.
2) Automatické certifikáty Let's Encrypt (DNS-01 validácia)
Let's Encrypt umožňuje vystaviť bezplatné certifikáty pomocou ACME protokolu. V prostredí TUKE Cloud sa používa výhradne DNS-01 validácia, pretože VM nemusia byť verejne dostupné cez HTTP.
DNS-01 validácia funguje takto:
- Certbot požiada o pridanie TXT záznamu
_acme-challenge.<dominová_zóna> - DNS API TUKE tento TXT záznam automaticky pridá.
- Let's Encrypt overí záznam a vystaví certifikát.
Výhody
- automatizované overenie pomocou interného DNS API,
- nie je potrebné sprístupniť HTTP port,
- ideálne pre *.virtual.cloud.tuke.sk, interné projekty aj API služby.
Výhody pre túto infraštruktúru
Táto metóda funguje iba vďaka tomu, že každá VM dostane DNS API token, ktorý je viazaný na jej vlastnú doménu:
📌 vra-ubuntu-server-XXXX.virtual.cloud.tuke.sk
Token je doručený v aktivačnom e-maile VM. Príklad (citlivé údaje redigované):

Token umožňuje pridávať a mazať DNS TXT záznamy len pre konkrétnu VM.
Postup získania certifikátu pomocou DNS-01 validácie
🧰 Predpoklady
- Ubuntu / Linux VM
- webserver (Apache alebo Nginx)
- nainštalovaný certbot
- DNS API token z aktivačného emailu VM
- doména vo formáte:
*.virtual.cloud.tuke.sk
⚙️ 1. Vytvorenie hook skriptov
auth-hook.sh – pridanie TXT záznamu
Ulož do: /usr/local/bin/auth-hook.sh
#!/usr/bin/env bash
set -e
TOKEN="TU_ZADAJTE_SVOJ_API_TOKEN"
CHALLENGE_NAME="_acme-challenge.${CERTBOT_DOMAIN}"
echo "Pridávam TXT záznam:"
echo "Domain: $CERTBOT_DOMAIN"
echo "Validation: $CERTBOT_VALIDATION"
echo "Name: $CHALLENGE_NAME"
curl -s -L -X POST -H "Content-Type: application/json" \
-d "{\"token\": \"$TOKEN\", \"domain\": \"$CERTBOT_DOMAIN\", \"name\": \"$CHALLENGE_NAME\", \"value\": \"$CERTBOT_VALIDATION\"}" \
https://dns-api.plesk.tuke.sk/index.php/dns/proxy/add_txt
sleep 3
cleanup-hook.sh – odstránenie TXT záznamu
Ulož do: /usr/local/bin/cleanup-hook.sh
#!/usr/bin/env bash
set -e
TOKEN="TU_ZADAJTE_SVOJ_API_TOKEN"
DOMAIN="$CERTBOT_DOMAIN"
ZONE_SUFFIX="virtual.cloud.tuke.sk"
if [[ "$DOMAIN" != *".${ZONE_SUFFIX}" ]]; then
echo "❌ Chyba: doména '$DOMAIN' nekončí na '.$ZONE_SUFFIX'"
exit 1
fi
HOST="${DOMAIN%.$ZONE_SUFFIX}"
CHALLENGE_NAME="_acme-challenge.${HOST}"
echo "Odstraňujem TXT záznam: $CHALLENGE_NAME"
RESPONSE=$(curl -s -L -X POST \
https://dns-api.plesk.tuke.sk/index.php/dns/proxy/delete_txt \
-H "Content-Type: application/json" \
-d '{
"token": "'"${TOKEN}"'",
"domain": "'"${DOMAIN}"'",
"name": "'"${CHALLENGE_NAME}"'"
}'
)
if echo "$RESPONSE" | grep -q '"status":"success"'; then
echo "✅ TXT záznam úspešne odstránený."
else
echo "❌ Chyba pri mazaní TXT záznamu:"
echo "$RESPONSE"
exit 1
fi
Nastav spustiteľné práva:
sudo chmod +x /usr/local/bin/auth-hook.sh
sudo chmod +x /usr/local/bin/cleanup-hook.sh
🚀 2. Vystavenie certifikátu certbotom
sudo certbot certonly \
--non-interactive \
--manual \
--preferred-challenges dns \
--manual-public-ip-logging-ok \
--manual-auth-hook /usr/local/bin/auth-hook.sh \
--manual-cleanup-hook /usr/local/bin/cleanup-hook.sh \
--deploy-hook "systemctl reload apache2" \
-d vra-ubuntu-server-0531.virtual.cloud.tuke.sk \
-d www.vra-ubuntu-server-0531.virtual.cloud.tuke.sk \
--email meno.priezvisko@tuke.sk \
--agree-tos
📌 Dôležité upozornenia
- DNS API token je jedinečný pre vašu VM.
- Token nesmie byť zverejnený alebo poskytnutý iným osobám.
- Certbot skripty pracujú výhradne v rámci *.virtual.cloud.tuke.sk domény.
- DNS-01 validácia je ideálna pre VM, ktoré nemajú verejný HTTP prístup.
- Certifikát môžete vystavovať opakovane, obnovovanie je možné plne automatizovať.