bg-tutorials

Cum să instalezi un certificat SSL pe lighttpd

În acest tutorial, veți învăța cum să instalați un certificat SSL pe Lighttpd. Ghidul acoperă configurația actuală (certificat și cheie privată separate, cu modulul mod_openssl), metoda veche cu PEM combinat pentru versiunile mai vechi, precum și un test rapid al configurației înainte de repornire.

Am înregistrat, de asemenea, un videoclip care vă ghidează prin întregul proces. Dacă preferați varianta text, continuați lectura mai jos.

Generați un cod CSR pe Lighttpd

Vom începe cu generarea CSR-ului (Certificate Signing Request). Un CSR este un bloc de text codificat pe care îl trimiteți unei autorități de certificare pentru a solicita un certificat SSL. Aveți două opțiuni:

Deschideți fișierul CSR cu orice editor de text și copiați conținutul acestuia, inclusiv liniile BEGIN CERTIFICATE REQUEST și END CERTIFICATE REQUEST, în caseta corespunzătoare din timpul procesului de comandă SSL. Trimiteți CSR-ul către autoritatea de certificare și așteptați validarea. După ce CA emite certificatul SSL, continuați cu instalarea de mai jos.

Instalați un certificat SSL pe Lighttpd

Pasul 1: Pregătiți fișierele certificatului

După validare, autoritatea de certificare vă trimite prin e-mail fișierele certificatului. Descărcați arhiva și extrageți-o. Ar trebui să aveți:

  • yourdomain.crt, certificatul dvs. SSL principal.
  • yourdomain.ca-bundle, certificatele intermediare (pachetul CA).
  • yourdomain.key, cheia privată pe care ați generat-o odată cu CSR-ul.

Lighttpd recomandă ca fișierul menționat de ssl.pemfile să conțină lanțul complet al certificatului: mai întâi certificatul dvs., urmat de certificatele intermediare. Creați acest fișier de lanț combinat, apoi mutați-l pe acesta și cheia privată într-un director pe care Lighttpd îl poate citi (de exemplu /etc/lighttpd/ssl/):

cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem
sudo mkdir -p /etc/lighttpd/ssl
sudo cp yourdomain.fullchain.pem yourdomain.key /etc/lighttpd/ssl/

Restricționați accesul la cheia privată astfel încât doar root să o poată citi:

sudo chmod 600 /etc/lighttpd/ssl/yourdomain.key

Pasul 2: Activați mod_openssl

Începând cu versiunea 1.4.56, suportul TLS în Lighttpd se află într-un modul încărcabil numit mod_openssl (există și alte module, precum mod_mbedtls, mod_wolfssl, mod_gnutls și mod_nss). Încărcați-l în fișierul principal de configurare, înainte de blocul socket-ului SSL:

server.modules += ( "mod_openssl" )

Notă: pe Lighttpd 1.4.55 și versiunile anterioare, TLS era compilat direct, nu încărcat ca modul, astfel încât puteți sări peste această linie pe acele versiuni. Verificați versiunea dvs. cu lighttpd -v.

Pasul 3: Editați lighttpd.conf

Deschideți fișierul principal de configurare (calea este de obicei /etc/lighttpd/lighttpd.conf) cu editorul preferat:

sudo nano /etc/lighttpd/lighttpd.conf

Adăugați un bloc socket pentru portul 443. Pe versiunile actuale de Lighttpd (1.4.56+), păstrați lanțul de certificate și cheia privată în fișiere separate: indicați ssl.pemfile către fișierul cu lanțul complet și ssl.privkey către cheie. Acesta este formatul livrat de majoritatea autorităților de certificare și este configurația recomandată de Lighttpd.

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
    ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"

    # Versiunea minimă TLS (ssl-conf-cmd necesită lighttpd 1.4.48+; TLS 1.2 este deja implicit pe 1.4.56+)
    ssl.openssl.ssl-conf-cmd = ( "MinProtocol" => "TLSv1.2" )
}
  • ssl.engine activează TLS pentru acest socket.
  • ssl.pemfile conține certificatul dvs., urmat de lanțul intermediar.
  • ssl.privkey conține cheia privată. Este obligatoriu din versiunea 1.4.53 ori de câte ori cheia nu se află în pemfile.

Pentru a redirecționa traficul HTTP simplu către HTTPS, astfel încât vizitatorii să ajungă întotdeauna la versiunea securizată, adăugați o redirecționare pentru portul 80 (acest lucru necesită mod_redirect, care este încărcat implicit pe majoritatea distribuțiilor):

$SERVER["socket"] == ":80" {
    url.redirect = ( "^/(.*)" => "https://yourdomain.com/$1" )
}

Salvați și închideți fișierul.

Metoda veche: PEM combinat și ssl.ca-file

Versiunile mai vechi de Lighttpd 1.4.x (înainte de 1.4.53) foloseau un singur fișier PEM combinat, care conținea atât certificatul, cât și cheia privată concatenate, iar lanțul intermediar era furnizat separat prin ssl.ca-file. Dacă întrețineți unul dintre aceste sisteme mai vechi, construiți fișierul combinat astfel:

cat yourdomain.crt yourdomain.key > /etc/lighttpd/ssl/yourdomain.pem

Apoi indicați-l în blocul socket:

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.pem"
    ssl.ca-file = "/etc/lighttpd/ssl/yourdomain.ca-bundle"
}

Pe versiunile actuale de Lighttpd, preferați forma separată cu ssl.pemfile și ssl.privkey din Pasul 3 și păstrați lanțul complet în pemfile. Directiva ssl.ca-file a fost redenumită ssl.verifyclient.ca-file în versiunea 1.4.60, deoarece rolul său real este verificarea certificatelor clienților, nu furnizarea lanțului serverului.

Pasul 4: Testați configurația

Verificați întotdeauna sintaxa înainte de repornire, deoarece o eroare poate împiedica pornirea serverului. Rulați:

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf

Ar trebui să vedeți un mesaj că sintaxa este corectă (OK). Pentru o verificare mai profundă, care încarcă și inițializează și modulele, utilizați sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf. Remediați orice eroare raportată înainte de a continua.

Pasul 5: Reporniți Lighttpd

Aplicați modificările. Pe un sistem modern cu systemd, reporniți serviciul:

sudo systemctl restart lighttpd

Pe sistemele mai vechi care utilizează SysV init, folosiți în schimb scriptul init:

sudo /etc/init.d/lighttpd restart

Felicitări, certificatul dvs. SSL este acum instalat pe Lighttpd. Pentru a confirma rezultatul și a obține un raport instant de stare, utilizați SSL Checker sau răsfoiți setul nostru complet de instrumente SSL. Pentru opțiuni avansate, consultați documentația oficială Lighttpd SSL.

Întrebări frecvente

Lighttpd folosește un fișier PEM combinat sau fișiere separate pentru certificat și cheie?

Versiunile actuale de Lighttpd (1.4.56 și ulterioare) recomandă fișiere separate: certificatul, împreună cu lanțul intermediar, în fișierul indicat de ssl.pemfile, iar cheia privată în ssl.privkey. Vechiul format PEM combinat, care concatena certificatul și cheia într-un singur ssl.pemfile, funcționează în continuare, dar forma separată corespunde modului în care majoritatea autorităților de certificare livrează fișierele și este recomandarea documentată.

Mai am nevoie de ssl.ca-file pentru lanțul intermediar?

Nu. Recomandarea actuală este să includeți certificatele intermediare direct în fișierul ssl.pemfile, imediat după certificatul dvs. Directiva ssl.ca-file era o modalitate istorică de a completa lanțul atunci când pemfile-ul conținea doar certificatul final, iar în versiunea 1.4.60 a fost redenumită ssl.verifyclient.ca-file, deoarece rolul său real este verificarea certificatelor clienților.

Cum verific configurația înainte de a reporni Lighttpd?

Rulați sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf pentru a testa sintaxa, sau sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf pentru un test mai profund, care încarcă și modulele. Remediați orice eroare raportată înainte de a reporni, astfel încât o greșeală de tipar să nu împiedice pornirea serverului.

De ce browserul meu afișează un lanț de certificate incomplet pe Lighttpd?

Acest lucru înseamnă, de obicei, că certificatele intermediare lipsesc din ssl.pemfile. Concatenați certificatul și pachetul CA într-un singur fișier, cu certificatul mai întâi, și indicați ssl.pemfile către acesta. Apoi testați configurația și reporniți. Puteți confirma că lanțul este complet cu ajutorul SSL Checker.

Cum verific dacă certificatul SSL este instalat pe Lighttpd?

Conectați-vă la site-ul dvs. cu OpenSSL și citiți certificatul furnizat:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Dacă certificatul este instalat, această comandă afișează emitentul și datele de valabilitate. De asemenea, puteți deschide site-ul într-un browser și verifica lacătul.

Economisește 10% la certificatele SSL în momentul plasării comenzii!

Eliberare rapidă, criptare puternică, încredere în browser de 99,99%, suport dedicat și garanție de returnare a banilor în 25 de zile. Codul cuponului: SAVE10

A detailed image of a dragon in flight

Autor cu experiență, specializat în certificate SSL. Transformă subiectele complexe despre securitatea cibernetică în conținut clar și captivant. Contribuie la îmbunătățirea securității digite prin narațiuni cu impact.