Hvordan konfigurere Apache HTTP med SSL-sertifikat?

La oss sikre Apache med SSL/TLS-sertifikat.

Når sertifikatet er implementert, vil det konfigurerte domenet/IP-en være tilgjengelig over HTTPS.

La oss få det i gang.

På et høyt nivå vil vi gjøre følgende.

  • Kompiler Apache HTTP 2.4.5 med SSL-modul
  • Få SSL-sertifikat
  • Konfigurer Apache til å støtte SSL

Installer Apache med SSL fra Source

For å konfigurere SSL, må Apache HTTP være kompilert med mod_ssl. Jeg vil bruke CentOS 7 VM fra Digitalt hav å demonstrere dette.

  • Logg på Linux-server med root og last ned den nyeste versjonen av Apache
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .

Merk: du kan sjekk her for den nyeste versjonen.

  • Pakk ut med gunzip-kommando
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
  • Du vil ha en ny mappe «httpd-2.4.25»
  • Gå inn og utfør følgende konfigureringskommando
./configure --enable-ssl –-enable-so

Merk: Hvis du gjør dette på en helt ny server, kan du oppleve problemer relatert til APR, PCRE, OpenSSL, og du kan se feilsøkingsveiledningen.

Pass på at du ikke får noen feilmelding fra konfigureringskommandoen ovenfor, og deretter må du installere med make-kommandoer.

make 
make install

Som vanlig, sørg for at ingen feil fra kommandoene ovenfor. Dette konkluderer med at du har installert en Apache-webserver med SSL-støtte.

  Forhåndsvis bilder og endre EXIF-data med Photo Data Explorer

Få et SSL-sertifikat

Det er flere måter å generere og få SSL-sertifikatet signert av sertifiseringsmyndigheten.

Hvis du ønsker å implementere SSL i intranett-webserveren, har de fleste av organisasjonen et internt sertifikatutstederteam, så du må sjekke med dem. Men du må fortsatt generere en CSR (Certificate Signing Request), og du kan gjøre det ved å bruke OpenSSL.

Men hvis du ønsker å sikre en Internett-vendt URL, kan du enten kjøpe et sertifikat fra VeriSign, GoDaddy, Namecheap, ZeroSSLetc., eller få et GRATIS sertifikat fra La oss kryptere.

Let’s Encrypt er et Linux Foundation Collaboration Project som tilbyr et GRATIS SSL/TLS-sertifikat. Jeg vil bruke Let’s Encrypt for å få ett sertifikat for domenet mitt – Chandan.io

Det er flere måter å generere CSR på, men den enkleste jeg fant er å bruke «SSL GRATIS«nettverktøy.

  Alt du vil vite

Skriv inn URL-en du vil sikre

Bekreft domeneeierskapet ved hjelp av en av de oppførte metodene og last ned domenesertifikatfilene.

Du vil få tre filer som vi vil bruke ved siden av for å konfigurere Apache-nettserveren.

  • nøkkel – dette er nøkkelfilen din og skal ikke deles med noen offentlig
  • Sertifikat – faktisk SSL-sertifikat for domenet ditt
  • Ca_bundle – Signerrot/mellomsertifikat
  • Overfør den nedlastede filen til webserveren. Vi trenger dem snart.

    Apache SSL-konfigurasjon

    Og et siste trinn ville være å konfigurere Apache slik at den kan betjene forespørselen over HTTPS.

    • Logg inn på Apache-nettserveren
    • Ta en sikkerhetskopi av httpd.conf-filen (standardplassering /usr/local/apache2/conf/)
    • Åpne filen med vi-editoren og sørg for at mod_ssl-modulen og httpd-ssl.conf eksisterer og ikke kommenteres
    LoadModule ssl_module modules/mod_ssl.so 
    Include conf/extra/httpd-ssl.conf

    Vi vil bruke httpd-ssl.conf-filen til å konfigurere sertifikatdetaljene. Det er følgende du trenger for å sikre at det eksisterer de riktige parameterne.

  • SSLCertificateFile – Sertifikat CRT-filbane som du lastet ned tidligere
  • SSLCertificateKeyFile – private.en nøkkelfilbane
  • SSLCertificateChainFile – ca_bundle.crt filbane
  • Tips: Det kan være lurt å opprette en ny mappe kalt «ssl» og beholde alle sertifikatrelaterte filer i denne.

    • Ta en sikkerhetskopi om nødvendig og bruk vi-editoren til å endre 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"

    Deretter må du konfigurere «ServerName»-direktivet. Vanligvis er det domene-/URL-navnet ditt

    ServerName chandan.io
    • Lagre filen og start Apache Webserver på nytt
    cd /usr/local/apache2/bin 
    ./apachectl stop 
    ./apachectl start

    Og til slutt må du sørge for at domenet ditt er tilordnet den nylig konfigurerte webserverens IP. Når du er ferdig, prøv å få tilgang til domenet ditt med HTTPS.

      4 verktøy for å kjøre SEO A/B-testeksperimenter

    Og som du kan se, er Chandan.io tilgjengelig over https med sertifikatet jeg konfigurerte.

    Trinnene ovenfor er avgjørende for å sette opp et SSL-sertifikat, og du må justere SSL ytterligere for å herde og sikre, som jeg forklarte her. Før start kan det også være lurt å teste nettserveren din SSL/TLS for å sikre at den ikke er utsatt for vanlige sikkerhetssårbarheter.

    Jeg håper dette gir deg en idé om hvordan du implementerer et SSL-sertifikat på Apache-webserveren din, slik at URL er tilgjengelig over HTTPS.

    Likte du å lese artikkelen? Hva med å dele med verden?