Kuidas seadistada iseseisvat Apache-serverit nimepõhise virtuaalse hostimisega koos SSL-sertifikaadiga - 4. osa


LFCE (lühidalt Linux Foundationi sertifitseeritud insener ) on väljaõppinud spetsialist, kellel on teadmisi Linuxi süsteemide võrguteenuste installimiseks, haldamiseks ja tõrkeotsinguks ning vastutab süsteemi arhitektuuri kavandamine, juurutamine ja pidev hooldamine.

Selles artiklis me näitame teile, kuidas konfigureerida Apache veebisisu teenindamiseks ning kuidas seadistada nimepõhiseid virtuaalseid hoste ja SSL-i, sealhulgas ise allkirjastatud sertifikaati.

Tutvustame Linux Foundationi sertifitseerimisprogrammi (LFCE).

Märkus. See artikkel ei peaks olema Apache'i põhjalik juhend, vaid pigem lähtepunkt selle teema iseõppimiseks LFCE eksami jaoks. Sel põhjusel ei käsitle me selles õpetuses ka Apache'i koormuse tasakaalustamist.

Võite juba teada muid samade ülesannete täitmise viise, mis on OK , arvestades, et Linux Foundationi sertifikaat on rangelt toimivuspõhine. Seega, kui te ‘ saate töö tehtud ’, on teil head võimalused eksamil sooritada.

Apache'i installimise ja käivitamise juhised leiate jaotisest 1. osa praegusest seeriast (\ "Võrguteenuste installimine ja automaatse käivitamise seadistamine käivitamisel").

Nüüdseks peaks teil olema Apache veebiserver installitud ja käivitatud. Seda saate kontrollida järgmise käsuga.

# ps -ef | grep -Ei '(apache|httpd)' | grep -v grep

Märkus. See ülaltoodud käsk kontrollib, kas jooksvate protsesside loendis on kas apache või httpd (veebidemooni kõige levinumad nimed). Kui Apache töötab, saate järgmise väljundiga sarnase väljundi.

Lõplik meetod Apache installi testimiseks ja selle töötamise kontrollimiseks käivitab veebibrauseri ja osutab serveri IP-le. Meile tuleks esitada järgmine ekraan või vähemalt teade, mis kinnitab, et Apache töötab.

Apache'i seadistamine

Apache'i peamine konfiguratsioonifail võib sõltuvalt levitamisest asuda erinevates kataloogides.

/etc/apache2/apache2.conf 		[For Ubuntu]
/etc/httpd/conf/httpd.conf		[For CentOS]
/etc/apache2/httpd.conf 		[For openSUSE]

Meie õnneks on konfigureerimisdirektiivid projekti Apache veebisaidil äärmiselt hästi dokumenteeritud. Mõnele neist viidame kogu selles artiklis.

Apache'i kõige põhilisem kasutusviis on veebilehtede serveerimine eraldiseisvas serveris, kus ühtegi virtuaalset hosti pole veel konfigureeritud. DocumentRoot direktiiv määrab kataloogi, kust Apache veebilehtede dokumente teenindab.

Pange tähele, et vaikimisi võetakse kõik taotlused sellest kataloogist, kuid võite kasutada ka sümboolseid linke ja/või varjunimesid võib kasutada ka teiste asukohtade näitamiseks.

Kui see pole kooskõlas direktiiviga Alias (mis lubab dokumente salvestada kohalikku failisüsteemi, mitte DocumentRoot määratud kataloogi alla), lisab server tee soovitud URL-ist dokumendi juure, et teha tee dokumendi juurde.

Näiteks arvestades järgmist DocumentRoot :

Kui veebibrauser osutab [ Serveri IP või hostinimi ] /lfce/tecmint.html , avab server /var/www/html/lfce/tecmint.html (eeldusel, et selline fail on olemas) ja salvestage sündmus selle juurdepääsulogisse vastusega 200 ( OK ).

Juurdepääsulogi on tavaliselt asukohas /var/log esindusnime all, näiteks access.log või access_log . Võite selle logi (ja ka tõrke logi) leida isegi alamkataloogist (näiteks CentOS-is /var/log/httpd ). Vastasel juhul logitakse ebaõnnestunud sündmus ikkagi juurdepääsulogisse, kuid vastuseks on 404 (Pole leitud).

Lisaks registreeritakse ebaõnnestunud sündmused tõrke logis :

Juurdepääsulogi vormingut saab kohandada vastavalt teie vajadustele, kasutades peamist konfiguratsioonifaili käsku LogFormat , samas kui te ei saa sama teha ka tõrglogi .

Juurdepääsulogi vaikevorming on järgmine:

LogFormat "%h %l %u %t \"%r\" %>s %b" [nickname]

Kui kõik tähed, millele eelneb protsendimärk, näitavad serverit teatud teabe logimiseks:

ja hüüdnimi on valikuline varjunimi, mida saab kasutada teiste logide kohandamiseks, ilma et peaksite kogu konfiguratsioonistringi uuesti sisestama.

Lisasuvandite saamiseks võite viidata Apache'i dokumentide käskkirjale [LogFormat [jaotis Kohandatud logivormingud]

Mõlemad logifailid ( juurdepääs ja viga ) on suurepärane ressurss, et kiiresti analüüsida Apache serveris toimuvat. Ütlematagi selge, et need on esimene tööriist, mida süsteemiadministraator probleemide tõrkeotsinguks kasutab.

Lõpuks on veel üks oluline direktiiv Kuula , mis käsib serveril aktsepteerida sissetulevaid taotlusi määratud pordis või aadressi/pordi kombinatsioonis:

Kui on määratletud ainult pordi number, kuulab apache kõigi võrguliideste antud porti (metamärki * kasutatakse kõigi võrguliideste tähistamiseks).

Kui on määratud nii IP-aadress kui ka port, siis apache kuulab antud pordi ja võrguliidese kombinatsiooni.

Pange tähele (nagu näete allpool toodud näidetest), et mitme kuulamisdirektiivi saab korraga kasutada mitme kuulatava aadressi ja pordi määramiseks. See valik annab serverile korralduse vastata päringutele mis tahes loetletud aadressidelt ja pordidelt.

Nimepõhiste virtuaalsete hostide seadistamine

Virtuaalse hosti mõiste määratleb üksiku saidi (või domeeni), mida teenindab sama füüsiline masin. Tegelikult saab mitu saiti/domeeni serveerida ühest\" päris " serverist virtuaalse hostina. See protsess on läbipaistev lõpptarbijale, kellele näib, et erinevaid saite teenindavad erinevad saidid veebiserverid.

Nimepõhine virtuaalne hostimine võimaldab serveril tugineda kliendile, kes hosti nime HTTP-päiste osana teatab. Seega saavad seda tehnikat kasutades paljud erinevad hostid jagada sama IP-aadressi.

Iga virtuaalne host on konfigureeritud kataloogis DocumentRoot . Meie puhul kasutame testimise seadistamiseks järgmisi näivaid domeene, mis kõik asuvad vastavas kataloogis:

  1. ilovelinux.com - /var/www/html/ilovelinux.com/public_html
  2. linuxrocks.org - /var/www/html/linuxrocks.org/public_html

Lehekülgede õigeks kuvamiseks chmod iga VirtualHosti kataloogi väärtuseks 755 :

# chmod -R 755 /var/www/html/ilovelinux.com/public_html
# chmod -R 755 /var/www/html/linuxrocks.org/public_html

Järgmisena looge index.html näidisfail igas public_html kataloogis:

<html>
  <head>
    <title>www.ilovelinux.com</title>
  </head>
  <body>
    <h1>This is the main page of www.ilovelinux.com</h1>
  </body>
</html>

Lõpuks lisage jaotistes CentOS ja openSUSE järgmine jaotis /etc/httpd/conf/httpd.conf või /lõpus. vastavalt etc/apache2/httpd.conf või lihtsalt muutke seda, kui see juba olemas on.

<VirtualHost *:80>
     ServerAdmin [email  
     DocumentRoot /var/www/html/ilovelinux.com/public_html
     ServerName www.ilovelinux.com
     ServerAlias www.ilovelinux.com ilovelinux.com
     ErrorLog /var/www/html/ilovelinux.com/error.log
     LogFormat "%v %l %u %t \"%r\" %>s %b" myvhost
     CustomLog /var/www/html/ilovelinux.com/access.log	myvhost
</VirtualHost>
<VirtualHost *:80>
     ServerAdmin [email  
     DocumentRoot /var/www/html/linuxrocks.org/public_html
     ServerName www.linuxrocks.org
     ServerAlias www.linuxrocks.org linuxrocks.org
     ErrorLog /var/www/html/linuxrocks.org/error.log
     LogFormat "%v %l %u %t \"%r\" %>s %b" myvhost
     CustomLog /var/www/html/linuxrocks.org/access.log	myvhost
</VirtualHost>

Pange tähele, et saate iga virtuaalse hostimääratluse lisada ka eraldi failidena kataloogi /etc/httpd/conf.d sees. Kui otsustate seda teha, tuleb iga konfiguratsioonifail nimetada järgmiselt:

/etc/httpd/conf.d/ilovelinux.com.conf
/etc/httpd/conf.d/linuxrocks.org.conf

Teisisõnu peate lisama saidi või domeeni nimele .conf .

Ubuntus nimetatakse iga üksikut konfiguratsioonifaili nimeks /etc/apache2/sites-available/[saidi nimi] .conf . Seejärel lubatakse või keelatakse iga sait vastavalt käsudega a2ensite või a2dissite järgmiselt.

# a2ensite /etc/apache2/sites-available/ilovelinux.com.conf
# a2dissite /etc/apache2/sites-available/ilovelinux.com.conf
# a2ensite /etc/apache2/sites-available/linuxrocks.org.conf
# a2dissite /etc/apache2/sites-available/linuxrocks.org.conf

Käsud a2ensite ja a2dissite loovad lingid virtuaalse hosti konfiguratsioonifailile ja paigutavad need (või eemaldavad) kausta /etc/apache2/saidid-lubatud kataloog.

Mõlemale saidile sirvimiseks mõnest teisest Linuxi kastist peate selle masina faili /etc/hosts lisama järgmised read, et suunata taotlused nendele domeenidele konkreetsele IP-le aadress.

[IP address of your web server]	www.ilovelinux.com
[IP address of your web server]	www.linuxrocks.org 

Turvameetmena ei luba SELinux Apache'il kirjutada logisid muusse kataloogi kui vaikimisi/var/log/httpd.

Võite kas keelata SELinuksi või määrata õige turvakonteksti:

# chcon system_u:object_r:httpd_log_t:s0 /var/www/html/xxxxxx/error.log

kus xxxxxx on kataloog/var/www/html, kuhu olete määranud oma virtuaalsed hostid.

Pärast Apache'i taaskäivitamist peaksite ülaltoodud aadressidel nägema järgmist lehte:

SSL-i installimine ja konfigureerimine Apache abil

Lõpuks loome ja installime ise allkirjastatud sertifikaadi, mida Apache'iga kasutada. Selline seadistamine on aktsepteeritav väikestes keskkondades, näiteks privaatvõrgus.

Kui teie server aga paljastab Interneti kaudu sisu välismaailmale, peate selle autentsuse kinnitamiseks installima kolmanda osapoole allkirjastatud sertifikaadi. Mõlemal juhul võimaldab sertifikaat teil krüptida teie saidile, saidilt või selle siseselt edastatavat teavet.

Rakendustes CentOS ja openSUSE peate installima paketi mod_ssl .

# yum update && yum install mod_ssl 		[On CentOS]
# zypper refresh && zypper install mod_ssl	[On openSUSE]

Ubuntu s peate Apache jaoks lubama ssl mooduli.

# a2enmod ssl

Järgmisi samme selgitatakse CentOS testiserveri abil, kuid teie seadistus peaks olema peaaegu identne teistes jaotustes (kui teil tekib mingeid probleeme, ärge kartke oma küsimusi kommentaaride abil jätta vorm).

1. samm [valikuline] : looge oma sertifikaatide salvestamiseks kataloog.

# mkdir /etc/httpd/ssl-certs

2. samm : genereerige ise allkirjastatud sertifikaat ja võti, mis seda kaitseb.

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl-certs/apache.key -out /etc/httpd/ssl-certs/apache.crt

Eespool loetletud valikute lühike selgitus:

  1. req -X509 näitab, et loome x509 sertifikaadi.
  2. -sõlmed (NO DES) tähendab\"võtit krüptimata".
  3. -päevad 365 on päevade arv, mille jooksul sertifikaat kehtib.
  4. -newkey rsa: 2048 loob 2048-bitise RSA-võtme.
  5. -keyout /etc/httpd/ssl-certs/apache.key on RSA-võtme absoluutne tee.
  6. -out /etc/httpd/ssl-certs/apache.crt on sertifikaadi absoluutne tee.

3. samm : avage valitud virtuaalse hosti konfiguratsioonifail (või selle vastav jaotis jaotises /etc/httpd/conf/httpd.conf nagu varem selgitatud) ja lisage järgmised read virtuaalne hosti deklaratsioon, mis kuulab sadamat 443 .

SSLEngine on
SSLCertificateFile /etc/httpd/ssl-certs/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl-certs/apache.key

Pange tähele, et peate lisama.

NameVirtualHost *:443

ülaosas, paremal all

NameVirtualHost *:80

Mõlemad direktiivid käskivad apache'il kuulata kõigi võrguliideste porte 443 ja 80 .

Järgmine näide on võetud aadressilt /etc/httpd/conf/httpd.conf :

Seejärel taaskäivitage Apache,

# service apache2 restart 			[sysvinit and upstart based systems]
# systemctl restart httpd.service 		[systemd-based systems]

Ja suunake oma brauser saidile https://www.ilovelinux.com . Teile kuvatakse järgmine ekraan.

Jätkake ja klõpsake käsul\" Mõistan riske " ja\" Lisa erand ".

Lõpuks märkige\" Salvesta see erand püsivalt " ja klõpsake\" Kinnita turvaerand ".

Ja teid suunatakse saidi https abil oma avalehele.

Kokkuvõte

Selles postituses oleme näidanud, kuidas konfigureerida Apache ja nimepõhine virtuaalne hostimine SSL -ga andmete edastamise kindlustamiseks. Kui teil tekkis mingil põhjusel probleeme, andke meile sellest teada, kasutades allolevat kommentaarivormi. Meil on enam kui hea meel aidata teil edukalt seadistada.

Loe ka

  1. Apache IP-põhine ja nimepõhine virtuaalne hostimine
  2. Apache'i virtuaalsete hostide loomine hostide lubamise/keelamise suvanditega
  3. Jälgige Apache'i veebiserverit, kasutades tööriista Apache GUI