TLS tanúsítvány megszerzése Linuxon az ACME protokoll segítségével
Az alábbi útmutató segít a tanúsítványok automatikus kiállításában és azok telepítésében linuxos szerverére a Certbot tanúsítványkezelő és -megújító eszköz segítségével. A leírás Apache webszerverre készült, azonban a Certbot Nginx, Haproxy és Plesk környezetben is használható. A Certbot nyílt forráskódú szoftver, ezért szabadon elérhető.
Előkészületek a tanúsítvány megszerzéséhez
Az ACME használata nagyon egyszerű, azonban némi előkészítést igényel. Mielőtt elkezdené használni, kérjük, olvassa el az alábbi részeket.
Hozzáférések beszerzése az autentikációhoz
A DigiCert ACME implementációja external account binding (EAB) autentikációt használ, ami azt jelenti, hogy saját hozzáférési adatokat kap a DigiCerthez. Ezeket az ACME hozzáféréseket (ACME credentials) egyszerűen létrehozhatja az SSLmarket ügyfélfiókjában.
Az ACME hozzáférések egy Key Identifier-ből (kulcsazonosító) és egy HMAC key-ből állnak, amely az Ön titkos kulcsa az adott ügyfélfiókhoz való hitelesítéshez. Ezekre az adatokra, valamint az ACME endpoint URL-jére szüksége lesz az ACME kliens (Certbot) konfigurálásához.
A tanúsítványok hitelesítésének összefoglalása
Minden DigiCert által kiadott tanúsítvány hitelesített. Egyes tanúsítványok minimális ellenőrzést igényelnek (DV), míg mások szervezeti hitelesítést (OV és EV). Az ACME esetében sincs ez másképp.
- A DV tanúsítványok azonnal kiadhatók; elegendő létrehozni az ACME hozzáféréseket a DV termékhez és használni azokat. A DCV ellenőrzés HTTP-01 módszerrel történik, a tanúsítvány azonnal kiadásra kerül.
- Az OV és EV tanúsítványok hitelesített szervezetet és a hozzá tartozó, ellenőrzött domaint igényelnek. Amennyiben a hitelesítés nem fejeződik be, az ACME kérés sem teljesül.
- A domainek automatikusan ellenőrizhetők HTTP-01 módszerrel, vagy előzetesen DNS vagy e-mail segítségével (ez esetben vegye fel velünk a kapcsolatot). A DCV folyamata megegyezik a megszokott eljárással.
- A szervezetet a tanúsítvány igénylése előtt hitelesíteni kell, különben a kérés várakozni fog, ami időtúllépéshez vezethet. Javasoljuk, hogy az ACME fiók aktiválása után várja meg a DigiCert általi szervezeti ellenőrzést, és szükség esetén egyeztessen az SSLmarket támogatásával.
OV és EV tanúsítványok esetén az ACME használata a szervezet hitelesítése után lehetséges (a domain- és szervezeti ellenőrzés 13 hónapig érvényes).
Certbot
A Certbot a legelterjedtebb ACME kliens, amely támogatja a főbb linuxos webszervereket.
A Certbot előkészítése a szerveren
A Certbot csomag gyakran előre telepítve van a linux disztribúciókban, azonban ezt az alapértelmezett csomagot el kell távolítani. A DigiCert EAB ACME használatához a Snap csomagot szükséges alkalmazni, más változatok nem feltétlenül működnek megfelelően. A telepítés az alábbi paranccsal történik:
snap install certbot --classic
A Certbot számos webszervert támogat. A használt típust paraméterrel adhatja meg, például --apache vagy --nginx. Más környezet esetén javasoljuk a hivatalos dokumentáció áttekintését.
Tanúsítvány megszerzése és telepítése
A Certbot használatára számos példa található az interneten, azonban a DigiCert ACME EAB módja miatt a parancsot ki kell egészíteni az ACME URL-lel és a két ACME hozzáféréssel. Ezek nélkül a kérés nem fog működni.
A terminálban indítsa el a tanúsítvány igénylését az alábbi paranccsal:
sudo certbot --apache --register-unsafely-without-email --server URL --eab-kid xxxxxx --eab-hmac-key yyyyyy -d www.domainneve.hu
A parancs paramétereinek magyarázata:
- Certbot – elindítja a Certbot alkalmazást.
- --apache – az Apache plugin használata, amely automatikusan telepíti a tanúsítványt.
- --register-unsafely-without-email – kihagyja az e-mail cím megadását.
- --server – megadja az ACME szervert, pl. https://acme.digicert.com/v2/acme/directory.
- -d – a teljes domain név, amelyre a tanúsítvány készül. Több domain (SAN) is megadható, ha a tanúsítvány támogatja.
A parancs futtatása után a rendszer rákérdez, hogy szeretné-e azonnal engedélyezni a HTTP → HTTPS átirányítást:
Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access.
-------------------------------------------------------------------------------
Válassza ki a megfelelő opciót, majd nyomja meg az ENTER billentyűt. A kiválasztott beállítás életbe lép, és a webszerver újraindítása után betöltődik. A folyamat végén visszajelzést kap a sikeres kiállításról és a tanúsítványok elérési útjáról.
A Certbot automatikusan telepíti a szükséges Intermediate tanúsítványt. A telepítés ellenőrzéséhez használja online eszközünket az SSL tanúsítvány ellenőrzéséhez.
ACME.sh
A DigiCert ACME az ACME.sh eszközzel is használható. Ez a megoldás „könnyebb”, kevesebb függőséget igényel a szerveren.
Hozzon létre egy külön rendszerfelhasználót a futtatáshoz:
useradd -r -s /bin/bash -m -d /home/acmeuser acmeuser
mkdir -p /home/acmeuser/.acme.sh
chown -R acmeuser:acmeuser /home/acmeuser/.acme.sh
echo 'acmeuser ALL=(ALL) NOPASSWD: /usr/sbin/service nginx reload' | sudo tee /etc/sudoers.d/acmeuser
majd lépjen be a felhasználóval: sudo su - acmeuser
Az acme.sh telepítése
Töltse le és futtassa az ACME klienst:
wget https://get.acme.sh -O acme.sh
sh acme.sh
- telepíti a szkriptet
- beállítja a cron feladatot
A tanúsítványkiadó regisztrálása:
acme.sh --register-account --server https://one.digicert.com/mpki/api/v1/acme/v2/directory --eab-kid xxxxxx --eab-hmac-key yyyyyy
Tanúsítvány igénylése
acme.sh --issue --server https://one.digicert.com/mpki/api/v1/acme/v2/directory -d pelda.domain.hu --days 365 -w /www/webroot --key-file /etc/nginx/ssl/domain.key --fullchain-file /etc/nginx/ssl/domain.cer --force --log --reloadcmd "sudo systemctl reload nginx"
Kiadott tanúsítványok listája:
acme.sh --list
Sajnáljuk, hogy nem kapott választ.
Segítene a cikk jobbá tételében? Írja meg nekünk mire nem kapott választ.