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 garantujú dôvernosť a integritu prenášaných dát.
SSL (Secure Sockets Layer) a jeho nástupca TLS (Transport Layer Security) sú kryptografické protokoly.
Certifikát obsahuje verejný kľúč servera, informácie o držiteľovi certifikátu (organizácii či doméne) a podpis certifikačnej autority (CA).
Overenie podpisu CA potvrdzuje, že verejný kľúč skutočne patrí danej doméne.
Šifrovanie: Zabraňuje odpočúvaniu (Man-in-the-Middle útoky).
Autentifikácia: Klient vie, že komunikuje so správnym serverom.
Dôvera používateľov: Zelený zámoček či „https://“ zvyšuje dôveryhodnosť stránky.
Interný nástroj „Harika“, prostredníctvom ktorého je možné vytvoriť a spravovať vlastné SSL certifikáty pre ľubovoľné domény.
Výhody: plná kontrola nad nastaveniami (dĺžka platnosti, kľúčové parametre), žiadne externé závislosti.
Nevýhody: nutnosť manuálnej obnovy, vyššia administratívna záťaž.
Let's Encrypt je bezplatná CA, ktorá poskytuje certifikáty prostredníctvom ACME protokolu. Má dve hlavné metódy overenia vlastníctva domény:
HTTP-01 (domain) validácia
Server musí na HTTP adrese http://<váš_domena>/.well-known/acme-challenge/...
sprístupniť špeciálny súbor.
ACME klient (napr. certbot) vytvorí tento súbor automaticky, server ho sprístupní a Let's Encrypt overí jeho existenciu.
DNS-01 (DNS) validácia
Overenie prebieha pridaním TXT záznamu do DNS zóny domény.
Po propagácii DNS záznamu Let's Encrypt overí jeho prítomnosť a vydá certifikát.
Naša infraštruktúra podporuje výhradne DNS-01 validáciu, čo znamená, že pri použití Let's Encrypt automaticky generujeme a spravujeme potrebné TXT záznamy – stačí nasmerovať zóny podľa inštrukcií v dokumentácii.
Skontrolujte, či máte prístup k Harika konzole (interná VPN alebo SSH tunel).
Pripravte si názov domény a požadované parametre (napr. dĺžku platnosti).
Pošlite e-mail na ssl@helpdesk.tuke.sk s predmetom „Žiadosť o SSL certifikát cez Hariku“ a uveďte:
1. plný názov domény (FQDN)
2. účel certifikátu (web, mail, API)
3. (nepovinne) špeciálne požiadavky na kľúč či algoritmus
Po spracovaní požiadavky helpdeskom dostanete potvrdenie a inštrukcie na stiahnutie certifikátu a súkromného kľúča.
Helpdesk SSL certifikátov: tcs@helpdesk.tuke.sk
Na infraštruktúre *.virtual.cloud.tuke.sk
je možné získať bezplatný SSL certifikát pomocou služby Let's Encrypt cez tzv. DNS-01 validáciu. Táto metóda vyžaduje pridanie špeciálneho TXT záznamu do DNS zóny domény.
Overenie a vystavenie certifikátu prebieha plne automatizovane pomocou skriptov, ktoré komunikujú s interným DNS API na TUKE.
Linuxový server s nainštalovaným Apache2
Inštalovaný nástroj Certbot
Prístup k shellu (terminálu)
API token pre DNS API:
Doména v zóne *.virtual.cloud.tuke.sk
auth-hook.sh
– pridanie TXT záznamuUložte 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áznamuUložte 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
sudo chmod +x /usr/local/bin/auth-hook.sh
sudo chmod +x /usr/local/bin/cleanup-hook.sh
Spustite nasledujúci príkaz:
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-0530.virtual.cloud.tuke.sk \
-d www.vra-ubuntu-server-0530.virtual.cloud.tuke.sk \
--email tvoje.meno@tuke.sk \
--agree-tos
API token je jedinečný a viazaný na konkrétnu doménu. Získate ho pri aktivácií daného virtuálu.
DNS-01 validácia je ideálna pre subdomény alebo systémy, ktoré nie sú priamo dostupné cez HTTP.
Skripty zabezpečujú automatické pridanie a odstránenie potrebného TXT záznamu cez interné DNS API.