Přeskočit na obsah
  1. Főoldal
  2. Támogatás
  3. További cikkek és útmutatók
  4. TLS tanúsítvány megszerzése Linuxra az ACME protokoll által

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.

Hívjon minket

ZONER Kft.

Práter utca 9. 3. em. 305.
9024 Győr

Adószám: 13576712-2-08
EU adószám: HU13576712