Hur ställer jag in Apache HTTP med SSL-certifikat?

Låt oss säkra Apache med SSL/TLS-certifikat.

När certifikatet har implementerats kommer den konfigurerade domänen/IP:en att vara tillgänglig via HTTPS.

Låt oss börja.

På hög nivå kommer vi att göra följande.

  • Kompilera Apache HTTP 2.4.5 med SSL-modul
  • Skaffa SSL-certifikat
  • Konfigurera Apache för att stödja SSL

Installera Apache med SSL från källan

För att konfigurera SSL måste Apache HTTP kompileras med mod_ssl. Jag kommer att använda CentOS 7 VM från Digital Ocean att visa detta.

  • Logga in på Linux-servern med root och ladda ner den senaste versionen av Apache
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .

Obs: du kan kolla här för den senaste versionen.

  • Extrahera med gunzip-kommando
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
  • Du kommer att ha en ny mapp ”httpd-2.4.25”
  • Gå in och kör följande konfigureringskommando
./configure --enable-ssl –-enable-so

Obs: Om du gör detta på en helt ny server kan du uppleva problem relaterade till APR, PCRE, OpenSSL och du kan hänvisa till felsökningsguiden.

Se till att du inte får något fel från ovanstående konfigureringskommando och sedan måste du installera med make-kommandon.

make 
make install

Se till som vanligt inga fel från ovanstående kommandon. Detta visar att du har installerat en Apache-webbserver med SSL-stöd.

Skaffa ett SSL-certifikat

Det finns flera sätt att generera och få SSL-certifikatet signerat av certifikatutfärdaren.

Om du funderar på att implementera SSL i intranätets webbserver, så har de flesta av organisationen ett internt team för certifikatutfärdare, så du måste kolla med dem. Men du behöver fortfarande generera en CSR (Certificate Signing Request), och du kan göra det med OpenSSL.

Men om du vill säkra en webbadress som vänder sig mot Internet kan du antingen köpa ett certifikat från VeriSign, GoDaddy, Namecheap, NollSSLetc., eller få ett GRATIS certifikat från Låt oss kryptera.

Let’s Encrypt är ett Linux Foundation Collaboration Project som erbjuder ett GRATIS SSL/TLS-certifikat. Jag kommer att använda Let’s Encrypt för att få ett certifikat för min domän – Chandan.io

Det finns flera sätt att generera CSR, men det enklaste jag hittade är att använda ”SSL GRATIS” onlineverktyg.

Ange webbadressen som du vill säkra

Verifiera domänägandet med någon av de angivna metoderna och ladda ner dina domäncertifikatfiler.

Du kommer att få tre filer som vi kommer att använda bredvid för att konfigurera Apache-webbservern.

  • nyckel – detta är din nyckelfil och bör inte delas med någon offentligt
  • Certifikat – faktiskt SSL-certifikat för din domän
  • Ca_bundle – Undertecknarrot/mellancertifikat
  • Överför den nedladdade filen till webbservern. Vi kommer att behöva dem inom kort.

    Apache SSL-konfiguration

    Och ett sista steg skulle vara att konfigurera Apache så att den kan betjäna begäran över HTTPS.

    • Logga in på Apaches webbserver
    • Ta en säkerhetskopia av filen httpd.conf (standardplats /usr/local/apache2/conf/)
    • Öppna filen med vi-redigeraren och se till att mod_ssl-modulen & httpd-ssl.conf finns och inte kommenteras
    LoadModule ssl_module modules/mod_ssl.so 
    Include conf/extra/httpd-ssl.conf

    Vi kommer att använda filen httpd-ssl.conf för att konfigurera certifikatdetaljerna. Det finns följande du behöver för att säkerställa att det finns de rätta parametrarna.

  • SSLCertificateFile – CRT-filsökväg för certifikat som du laddade ner tidigare
  • SSLCertificateKeyFile – privat.en nyckelfilsökväg
  • SSLCertificateChainFile – ca_bundle.crt filsökväg
  • Tips: du kanske vill skapa en ny mapp som heter ”ssl” och behålla alla certifikatrelaterade filer i denna.

    • Ta en säkerhetskopia om det behövs och använd vi-redigeraren för att ändra filen.
    SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt"
    SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt"
    SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"

    Därefter måste du konfigurera ”ServerName”-direktivet. Vanligtvis är det ditt domän-/URL-namn

    ServerName chandan.io
    • Spara filen och starta om Apache-webbservern
    cd /usr/local/apache2/bin 
    ./apachectl stop 
    ./apachectl start

    Och slutligen måste du se till att din domän är mappad till den nyligen konfigurerade webbserverns IP. När du är klar, försök att komma åt din domän med HTTPS.

    Och som du kan se är Chandan.io tillgänglig via https med certifikatet jag konfigurerade.

    Ovanstående steg är viktiga för att ställa in ett SSL-certifikat, och du måste justera SSL ytterligare för att hårdna och säkra vilket jag förklarade här. Innan du sätter igång kanske du också vill testa din webbserver SSL/TLS för att säkerställa att den inte utsätts för vanliga säkerhetsbrister.

    Jag hoppas att detta ger dig en uppfattning om hur du implementerar ett SSL-certifikat på din Apache-webbserver, så att URL är tillgänglig via HTTPS.

    Gillade du att läsa artikeln? Vad sägs om att dela med världen?