Menu
TLS tanúsítvány megszerzése Linuxra az ACME protokoll által
Az alábbi bejegyzés segít a tanúsítvány automatikus kiállításban és annak telepítésében a linux szerverére, köszönhetően a tanúsítvány kezelését szolgáló Certbot automatizált eszköznek. A leírás az Apacha webszerverre szól, de a Certbot használható Nginx, Haproxy és Plesk platformokon is. Ez egy nyílt forráskódú szoftver, ezért könnyen megszerezhető.
A tanúsítvány megszerzésének előkészítése
Az ACME használata nagyon egyszerű, de igényel némi előkészítést. Mielőtt elkezdené használni, olvassa el az alábbi bekezdéseket.
Hitelesítési hozzáférés megszerzése
A DigiCert ACME implementációja external account binding (EAB) hitelesítést használ, ami azt jelenti, hogy saját hozzáférést kap a DigiCerthez. Ezeket a hozzáféréseket (ACME credentials) egyszerűen megszerzi az SSLmarket ügyfélfiókjában.
Az ACME credentials a Key Identifier (kulcs azonosító) és a HMAC key páros, amely az Ön titka a meglévő fiókkal szembeni hitelesítéshez. Ezekre az adatokra és az ACME endpoint URL-jére szüksége lesz az ACME kliens (Certbot) számára.
Figyelem: A tanúsítvány, annak érvényessége és szervezet minden kombinációjához egyedi KID és HMAC kulcs pár tartozik. Az Ön felelőssége, hogy ezeket biztonságosan tárolja.
Figyelmeztetés: Az ACME-hez különleges workflow-t használunk, hogy az egyes ügyfelek tanúsítványait külön szeparáljuk. Az előnye a nagyobb biztonság és áttekinthetőség (az ACME tanúsítványokat az ügyfélfiókjában láthatja), a hátránya, hogy újra létre kell hozni és hitelesíteni kell a szervezeteket az OV és EV hitelesítéshez.
A tanúsítványok hitelesítésének összefoglalása
Minden tanúsítvány, amelyet a DigiCert kibocsát, hitelesített. Egyesek minimális szinten (DV tanúsítványok), mások pedig szervezeti hitelesítést igényelnek (OV és EV). Az ACME nem kivétel, és ez a hitelesítés itt is használatos.
- A domain DV tanúsítványokat azonnal megkapja; elég létrehozni az ACME credentialst a DV termékhez és használni. A DCV hitelesítés a HTTP-01 metódussal történik, és a tanúsítvány azonnal kibocsátásra kerül.
- Az OV és EV tanúsítványok hitelesített szervezetet igényelnek és a felhasznált, szervezethez kötődő domain hitelesítését. Ha a hitelesítés nincs befejezve, az ACME kérelem sem teljesíthető.
- A domainek automatikusan hitelesíthetők a HTTP-01 segítségével, vagy előre hitelesíthetők DNS vagy e-mail útján (ebben az esetben lépjen velünk kapcsolatba). A DCV pontosan ugyanúgy zajlik, ahogy megszokta.
- A szervezetet a tanúsítvány igénylése előtt hitelesíteni kell, különben a kérelem a befejezésre vár (ami timeouttal végződik). Javasoljuk, hogy az ACME fiók bekapcsolása után várja meg a szervezetének hitelesítését a DigiCerttől, és az állapotot egyeztesse az SSLmarket ügyfélszolgálatával.
Az OV és EV esetében az ACME-t akkor kezdheti el használni, amint a szervezet hitelesítve van (a domain- és cégek hitelesítése 13 hónapig érvényes).
Certbot
A Certbot a legnépszerűbb ACME kliens, amely támogatja a főbb linuxos webszervereket.
A Certbot előkészítése a szerveren
Telepítse a Certbotot a szerverén, ajánljuk a webszerver szerinti modulok telepítését. A modulok ezután megkönnyítik a tanúsítvány telepítési célhelyének kiválasztását, és közvetlenül működhetnek a kiszolgáló konfigurációjával (megkönnyíti a telepítés elvégzését).
A Certbot csomag általában telepítve van a linuxos disztribúciókban, de ezt az alapértelmezett csomagot távolítsa el. A DigiCert EAB ACME használatához a Snap csomagot kell használni; más változatok nem feltétlenül működnek. Így telepítheti:
snap install certbot --classic
Megjegyzés: A Certbot hivatalos oldalán kiválaszthatja közvetlenül a szervere operációs rendszerét, és itt megtalálja a telepítés lépésről lépésre szóló leírását is.
Tanúsítvány megszerzése és telepítése
Az interneten és a Certbot dokumentációjában sok példát talál a használatára és a tanúsítvány megszerzésére. Mivel azonban a DigiCert ACME már említett EAB módban működik, a parancsot ki kell egészíteni az ACME URL-lel és a két ACME credentialssal, amelyeket az adminisztrációjában szerzett meg. Máskülönben nem fog működni.
A terminálban kérvényezze a tanúsítványt az alábbi paranccsal:
sudo certbot --apache --register-unsafely-without-email --server "Ön ACME Directory URL-ja" -d www.domainjeneve.hu -d domainjeneve.hu
Parancs választható paraméterei:
- Certbot – elindítja a Certbot-pt
- --apache – kiválassza a Apache Certbot plugint, amely telepíti a tanúsítványt az Ön számára.
- --register-unsafely-without-email – lehetővé teszi átugorni az ACME fiók létrehozását
- --server – meghatározzá, hogy az ACME mely szerverre érvényesüljön a kérelme alapján. Tehát definálja az ACME Directory URL-t
- -d – A teljes domain név, amelyre a tanúsítványt szeretné kiadni. Ha nem jelöli ki ezt az opciót, úgy a Certbot a szerver koönfigurált vhost alapján kéri a megerősítést arról, hogy mely domaineket érintsen a kérelem.
A parancs megadása után felajánlja, hogy engedélyezi-e a https-re történő átirányítást az adott domainen:
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. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Jelölje be a választását és nyomjon ENTER-t. Az Ön által válaszott kinfiguráció beállítódik és a webszerver újraindítása után beolvasódik. Ezután megkapja az üzenetet az információkról arról, hogy a folyamat sikeres volt és hogy hol vannak a tanúsítványai elhelyezve.
A Certbot ráadásul telepíti a szükséges Intermediate tanúsítványt, a telepítés helyességének ellenőrzéséhez pedig használhatja az online eszközünket, az SSL tanúsítványok ellenőrzését.
ACME.sh
A DigiCert ACME-t egyszerűen kihasználhatja az ACME.sh eszközzel is. Ez a certbottal ellentétben "karcsúbb", és nem kell annyi függőséget telepítenie a szerverre.
Külön rendszerfelhasználó létrehozása, amely alatt fut:
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 bejelentkezem a felhasználóra: sudo su - acmeuser
Az acme.sh telepítése
Most telepítse az ACME klienst a webről letöltött csomaggal.
wget https://get.acme.sh -O acme.sh
sh acme.sh
A telepítés a következőket végzi:
- magának a szkriptnek a telepítése
- cron feladat beállítása (ellenőrizhető az acmeuser felhasználó alatt a crontab -e paranccsal)
Ezután regisztrálom a tanúsító hatóságot:
acme.sh --register-account --server https://one.digicert.com/mpki/api/v1/acme/v2/directory --eab-kid xxxxxx --eab-hmac-key yyyyyy
A tanúsítvány kibocsátásának kérelme előtt még ellenőrizni kell (és szükség esetén beállítani), hogy az acmeuser felhasználónak legyen hozzáférése a célmappához, ahol a tanúsítványok találhatók az nginx, apache, illetve a szerver egyéb szolgáltatásai számára. A megoldás egy új ssladmins csoport létrehozása:
sudo groupadd ssladmins
sudo usermod -aG ssladmins root
sudo usermod -aG ssladmins acmeuser
sudo chown root:ssladmins /etc/nginx/ssl/
sudo chmod 770 /etc/nginx/ssl/
Létezne más megoldás is: a visudo segítségével jogosultságot állítani az acmeuser felhasználónak a fájlok jelszó nélküli másolására az adott mappákba.
Tanúsítvány kibocsátásának kérelme
acme.sh --issue --server https://one.digicert.com/mpki/api/v1/acme/v2/directory -d dev.inmail.cz --days 365 -w /www/sites/inmail/dev/current/web/ --key-file /etc/nginx/ssl/dev.inmail.cz.key --fullchain-file /etc/nginx/ssl/dev.inmail.cz.cer --force --log --reloadcmd "sudo systemctl reload nginx"
A kibocsátott és telepített tanúsítványok listája:
acme.sh --list
Kérdései vannak?
Ne habozzon kapcsolatba lépni ügyfélszolgálatunkkal, amely tanácsot ad és segít.
ZONER Kft.
Práter utca 9. 3. em. 305.
9024 Győr
Adószám: 13576712-2-08
EU adószám: HU13576712
Hasznos volt Önnek ez a cikk?
Köszönjük a visszajelzését a cikkel kapcsolatban.
Sajnáljuk, hogy nem kapott választ.
Segítene a cikk jobbá tételében? Írja meg nekünk mire nem kapott választ.