I den här artikeln kommer vi att utforska processen för att installera och konfigurera Certbot på en Linux-server. Vi kommer att förklara i detalj hur man får ett Let's Encrypt SSL/TLS-certifikat för din domän. Vi kommer också att beskriva hur du installerar det på en webbserver (som Nginx eller Apache) och ställer in automatiska certifikatförnyelser för att säkerställa en kontinuerlig säker anslutning till din webbresurs.
Certbot är ett gratis verktyg med öppen källkod designat för automatiskt förvärv och förnyelse av SSL/TLS-certifikat. Det spelar en avgörande roll för att säkra anslutningen mellan servern och klienten och skyddar data från obehörig åtkomst. Certbot förenklar installationen och förnyelsen av ett SSL-certifikat. Certifikatet förbättrar inte bara säkerheten, utan det ökar också användarnas förtroende för din webbresurs och förbättrar därigenom både webbplatsens rykte och dess sökmotorrankning.
Installerar Certbot
Certbot ingår i de flesta distributioner som standard, så att installera den på Debian / Ubuntu system behöver du bara uppdatera paketlistan:
apt update
Starta sedan installationsprocessen:
apt install certbot
Certbot stöder plugins som underlättar installation och konfiguration av certifikatet för en webbserver. För att installera dessa plugins, använd motsvarande kommando:
apt install certbot python3-certbot-nginx # for Nginx
apt install certbot python3-certbot-apache # for Apache
Installationsprocessen för Red Hat system (som RHEL, CentOS, fedora) är något annorlunda. Till en början måste du lägga till EPEL-förvaret:
yum install epel-release
Installera sedan verktyget:
yum install certbot
På samma sätt finns det ett alternativ att välja ett plugin för en specifik webbserver:
yum install python3-certbot-nginx # for Nginx
yum install python3-certbot-apache # for Apache
Efter installationen kan du omedelbart fortsätta för att erhålla certifikatet.
Skaffa ett SSL-certifikat
I det här avsnittet kommer vi att diskutera processen att erhålla ett certifikat oberoende av en specifik webbserver, följt av att beskriva processen för att installera certifikatet för Nginx och Apache. Det är dock viktigt att först förstå programmets syntax och funktionalitet. Det ser ut som följer:
certbot command option -d domain
Huvudkommandona inkluderar:
certbot certonly - Hämtar certifikatet men installerar det inte.certbot certificates - Det här kommandot visar en lista över alla installerade certifikat.certbot renew - Utökar det befintliga certifikatet.certbot revoke - Återkallar det befintliga certifikatet.certbot delete - Tar bort det befintliga certifikatet.
De vanligaste alternativen är:
--nginx - Använder Nginx-konfigurationsskript för domänverifiering.--apache - Använder Apache-konfigurationsskript för domänverifiering.-d - En lista över domäner för vilka certifikatet begärs.--standalone - Använder fristående läge för domänverifiering.--manual - Utför manuell domänverifiering.
Detta är bara ett exempel på de vanligaste kommandona och alternativen. Du kan bekanta dig med hela listan över programfunktioner i hjälpsektionen:
certbot –help
Vi fortsätter nu för att erhålla certifikatet. Som ett exempel kommer vi att få ett certifikat för en virtuell server för en gratis domän på tredje nivå som dittanvändarnamn.pserver.space
Först måste du ange kommandot:
certbot certonly
Som svar kommer verktyget att be dig välja en metod för att verifiera domänägandet:
Det första alternativet är praktiskt om du inte har en konfigurerad webbserver eller om du inte vill göra ändringar i en befintlig. Denna metod skapar en tillfällig webbserver för att bekräfta din rätt till domänen. Den är idealisk för en enkel och snabb installation. När du väljer denna metod är det viktigt att hålla port 80 fri.
Det andra alternativet är att föredra om du redan har en webbserver i drift och du vill använda den för att verifiera rätten till domänen. Certbot placerar speciella filer i en mapp på din server, som sedan kontrolleras av certifieringscentret.
Vi väljer det första alternativet och klickar på nästa. I detta skede behöver du:
- Ange en e-postadress;
- Godkänn användarvillkoren;
- Godkänna eller vägra att ta emot e-postmeddelanden på uppdrag av företaget och dess partners;
- Ange det domännamn som certifikatet är utfärdat för.
Efter att ha slutfört certifikatutfärdandet med Certbot-verktyget kommer det att ange sökvägen till katalogen där det utfärdade certifikatet och data för ditt konto lagras:
Allt som återstår är att du kopplar det erhållna certifikatet till den tjänst som krävs.
Installera certifikatet för Nginx eller Apache
Detta avsnitt förutsätter att vissa grundläggande villkor är uppfyllda:
- Du har redan installerat och konfigurerat en webbserver, antingen Nginx eller Apache. Det måste vara tillgängligt från internet via det domännamn som du avser att få certifikatet för;
- Under installationen av verktyget installerade du också en plugin för Nginx eller Apache med hjälp av lämpligt kommando;
- Brandväggen tillåter anslutningar på portarna 80 och 443. Om dessa portar är stängda för anslutningar kommer tjänsten inte att vara tillgänglig för inkommande anslutningar. För mer information om brandväggsdrift diskuterade vi detta i artikeln om sätta upp en brandvägg på Linux.
När alla villkor är uppfyllda kan du gå direkt till certifikatutfärdandet. Vi kommer att överväga processen att erhålla ett SSL-certifikat på en server med Nginx som exempel. Men om du använder en Apache-webbserver är processen helt identisk.
För att få certifikatet måste du ange kommandot:
certbot --nginx # for Nginx
certbot --apache # for Apache
Som svar kommer verktyget att begära: en e-postadress, samtycke till användarvillkoren för tjänsten Let's Encrypt och tillåtelse att skicka e-postmeddelanden på uppdrag av tjänsten och dess partners.
Därefter måste du ange det domännamn som certifikatet utfärdas för. Certbot kan automatiskt bestämma domänen om den specificerades i servernamn fält för nginx konfiguration eller Server namn och Server för Apache. Om det inte är specificerat kommer programmet att meddela dig och be dig ange domännamnet manuellt. Sedan kommer verktyget att fråga om man vill aktivera omdirigering av förfrågningar från HTTP till HTTPS-protokoll. För att ställa in automatisk omdirigering bör du välja det andra alternativet:
Efter en tid kommer Certbot att informera dig om framgångsrikt förvärv av certifikatet för den angivna domänen. Från och med denna tidpunkt kommer alla inkommande anslutningar att omdirigeras från port 80 till 443. Verktyget visar katalogerna där du kan hitta alla certifikatdata och Let's Encrypt-kontodetaljerna:
Meddelandet kommer också att ange giltighetsperioden för det erhållna certifikatet och viktiga alternativ för att hantera alla aktiva certifikat:
- visst. Det här alternativet används för att erhålla eller uppdatera certifikatet utan automatisk webbserverkonfiguration. Certbot kommer endast att begära eller uppdatera certifikatet men kommer inte att göra några automatiska ändringar i serverkonfigurationen. Tidigare använde vi det här alternativet för att få ett certifikat utan att vara bundna till en webbserver.
- förnya används för automatisk förnyelse av alla certifikat som har erhållits genom Certbot och som är inom deras giltighetstid. Programmet kommer att kontrollera alla certifikat, och om något av dem löper ut inom 30 dagar eller mindre kommer det att förnyas automatiskt.
Nästa i instruktionerna kommer vi att diskutera hur man ställer in automatisk förnyelse av certifikat utan användaringripande var tredje månad.
Automatisk certifikatförnyelse i Certbot
För Debian/Ubuntu
När du använder dessa operativsystem lägger Certbot automatiskt till ett skript till uppgiftslistan för automatisk förnyelse av installerade certifikat. Du kan kontrollera skriptets funktionalitet med följande kommando:
systemctl status certbot.timer
Svaret kommer att visa tjänstens status, såväl som katalogen som innehåller konfigurationsfilen. Du kan öppna detta med vilken textredigerare som helst. Om du inte har erfarenhet av textredigerare i Linux rekommenderar vi att du bekantar dig med vår översikt av de mest populära lösningarna. I det här fallet kommer vi att använda nano:
nano /lib/systemd/system/certbot.timer
Alla viktiga parametrar är markerade:
- Schemat anger att tjänsten kommer att köras två gånger om dagen kl. 00:00 och 12:00;
- Ett andra värde indikerar en slumpmässig fördröjning i sekunder som kommer att läggas till timerns start. I det här fallet är det 43,200 12 sekunder (XNUMX timmar), vilket gör uppskjutningen mer slumpmässig och sprider belastningen;
- Denna parameter säkerställer att om timern skulle köras under en systemavstängning, kommer den att aktiveras omedelbart vid uppstart.
Du kan också köra en påtvingad kontroll av certifikatförnyelse med kommandot:
certbot renew --dry-run
Med detta kommando kommer certifikaten inte att uppdateras. Istället kommer verktyget att utföra åtgärder som liknar att erhålla ett certifikat när det löper ut. På så sätt kan du säkerställa tjänstens funktionalitet gällande automatisk förnyelse.
För CentOS, Fedora och andra
Processen för att aktivera automatiska uppdateringar på Red Hat-familjens system skiljer sig något. Till skillnad från Debian/Ubuntu, för CentOS och andra system, måste du lägga till en uppgift manuellt i schemaläggaren. För detta kommer vi att använda cron verktyg:
crontab -e
Lägg sedan till följande rad i filen som öppnas:
0 12 * * * /usr/bin/certbot renew --quiet
Låt oss bryta ner huvudargumenten för kommandot:
- Avrättningstiden. I det här fallet körs kommandot automatiskt klockan 12:00 varje dag;
- Kommandot för att förnya SSL/TLS-certifikat med Certbot;
- Ocuco-landskapet --tyst flaggan undertrycker utdata, vilket gör processen mer dold och mindre påträngande i systemloggar eller display.
När du har lagt till kommandot måste du spara ändringarna i filen.
Precis som med Debian/Ubuntu kan du också initiera en påtvingad kontroll av certifikatförnyelser:
certbot renew --dry-run
Resultatet av en framgångsrik körning av kommandot ser ut som följer:
Slutsats
Vi har utforskat den omfattande processen att installera och konfigurera Certbot på en Linux-server. Genom att följa de medföljande instruktionerna kan du framgångsrikt få ett SSL/TLS-certifikat från Let's Encrypt, installera det på din webbserver och konfigurera automatisk förnyelse för att säkerställa kontinuerligt skydd och ökat förtroende för din webbresurs. Med Certbot kan du enkelt skapa en pålitlig och säker miljö för användarna.