Jinsi ya Kusanidi Seva Iliyojitegemea ya Apache na Upangishaji Mtandaoni unaotegemea Jina na Cheti cha SSL - Sehemu ya 4


LFCE (fupi ya Mhandisi Aliyeidhinishwa na Linux Foundation) ni mtaalamu aliyefunzwa ambaye ana utaalamu wa kusakinisha, kudhibiti na kutatua huduma za mtandao katika mifumo ya Linux, na anasimamia muundo, utekelezaji na matengenezo yanayoendelea ya usanifu wa mfumo.

Katika makala haya tutakuonyesha jinsi ya kusanidi Apache ili kutumikia maudhui ya wavuti, na jinsi ya kusanidi wapangishi pepe wa kutegemea majina na SSL, ikijumuisha cheti cha kujiandikisha.

Tunakuletea Mpango wa Uthibitishaji wa Msingi wa Linux (LFCE).

Kumbuka: Kwamba makala haya hayafai kuwa mwongozo wa kina kuhusu Apache, lakini badala yake ni sehemu ya kuanzia ya kujisomea kuhusu mada hii kwa ajili ya mtihani wa LFCE. Kwa sababu hiyo sisi si kufunika kusawazisha mzigo na Apache katika mafunzo haya pia.

Huenda tayari unajua njia zingine za kutekeleza majukumu sawa, ambayo ni Sawa kwa kuzingatia kwamba Uthibitishaji wa Wakfu wa Linux unategemea utendakazi madhubuti. Hivyo basi, mradi ‘unafanya kazi’, unakuwa na nafasi nzuri ya kufaulu mtihani.

Tafadhali rejelea Sehemu ya 1 ya mfululizo wa sasa (\Kusakinisha Huduma za Mtandao na Kusanidi Uanzishaji Kiotomatiki kwenye Kuwasha) kwa maagizo ya kusakinisha na kuanzisha Apache.

Kufikia sasa, unapaswa kuwa na seva ya wavuti ya Apache iliyosakinishwa na kufanya kazi. Unaweza kuthibitisha hili kwa amri ifuatayo.

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

Kumbuka: Kwamba amri iliyo hapo juu hukagua uwepo wa aidha apache au httpd (majina ya kawaida ya daemoni ya wavuti) kati ya orodha ya michakato inayoendesha. Ikiwa Apache inaendesha, utapata matokeo sawa na yafuatayo.

Mbinu kuu ya kujaribu usakinishaji wa Apache na kuangalia ikiwa inaendeshwa ni kuzindua kivinjari cha wavuti na kuelekeza IP ya seva. Tunapaswa kuwasilishwa kwa skrini ifuatayo au angalau ujumbe unaothibitisha kwamba Apache inafanya kazi.

Inasanidi Apache

Faili kuu ya usanidi ya Apache inaweza kupatikana katika saraka tofauti kulingana na usambazaji wako.

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

Kwa bahati nzuri kwetu, maagizo ya usanidi yameandikwa vizuri sana kwenye wavuti ya mradi wa Apache. Tutarejelea baadhi yao katika nakala hii yote.

Matumizi ya msingi zaidi ya Apache ni kutumikia kurasa za wavuti katika seva inayojitegemea ambapo bado hakuna seva pangishi pepe ambazo zimesanidiwa. Maagizo ya DocumentRoot yanabainisha saraka ambayo Apache itatumia hati za kurasa za wavuti.

Kumbuka kuwa kwa chaguo-msingi, maombi yote yanachukuliwa kutoka kwenye saraka hii, lakini pia unaweza kutumia viungo vya ishara na/au lakabu zinaweza kutumika kuashiria maeneo mengine pia.

Isipokuwa inalinganishwa na maagizo ya Alas (ambayo huruhusu hati kuhifadhiwa katika mfumo wa faili wa ndani badala ya chini ya saraka iliyobainishwa na DocumentRoot), seva huongeza njia kutoka kwa URL iliyoombwa. kwa mzizi wa hati kutengeneza njia ya hati.

Kwa mfano, kutokana na DocumentRoot ifuatayo:

Wakati kivinjari cha wavuti kinaelekeza kwa [Seva ya IP au jina la mwenyeji]/lfce/tecmint.html, seva itafungua /var/ www/html/lfce/tecmint.html (ikizingatiwa kuwa faili kama hiyo ipo) na uhifadhi tukio kwenye kumbukumbu yake ya ufikiaji kwa jibu la 200 (Sawa).

Kwa kawaida kumbukumbu ya ufikiaji hupatikana ndani ya /var/log chini ya jina mwakilishi, kama vile access.log au access_log. Unaweza hata kupata logi hii (na logi ya makosa pia) ndani ya saraka ndogo (kwa mfano, /var/log/httpd katika CentOS). Vinginevyo, tukio lisilofanikiwa bado litawekwa kwenye kumbukumbu ya ufikiaji lakini kwa jibu la 404 (Halijapatikana).

Kwa kuongeza, matukio ambayo hayakufaulu yatarekodiwa katika logi ya makosa:

Umbizo la logi ya ufikiaji linaweza kubinafsishwa kulingana na mahitaji yako kwa kutumia mwongozo wa LogFormat katika faili kuu ya usanidi, ilhali huwezi kufanya vivyo hivyo na logi ya hitilafu. .

Umbizo chaguo-msingi la logi ya ufikiaji ni kama ifuatavyo:

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

Ambapo kila herufi inayotanguliwa na ishara ya asilimia huonyesha seva kuweka habari fulani:

na jina la utani ni lakabu ya hiari ambayo inaweza kutumika kubinafsisha kumbukumbu zingine bila kulazimika kuingiza safu nzima ya usanidi tena.

Unaweza kurejelea maagizo ya LogFormat [sehemu ya fomati maalum za kumbukumbu] katika hati za Apache kwa chaguo zaidi.

Faili zote mbili za kumbukumbu (ufikiaji na hitilafu) zinawakilisha rasilimali nzuri ya kuchanganua kwa haraka kile kinachotokea kwenye seva ya Apache. Bila kusema, ni zana ya kwanza ambayo msimamizi wa mfumo hutumia kutatua maswala.

Hatimaye, maagizo mengine muhimu ni Sikiliza, ambayo huiambia seva kukubali maombi yanayoingia kwenye lango au anwani/mseto uliobainishwa:

Ikiwa nambari ya mlango pekee itafafanuliwa, apache itasikiliza mlango uliotolewa kwenye violesura vyote vya mtandao (alama ya kadi-mwitu * inatumiwa kuashiria 'miingiliano yote ya mtandao').

Ikiwa anwani ya IP na bandari zote zimetajwa, basi apache itasikiliza mchanganyiko wa bandari na interface ya mtandao.

Tafadhali kumbuka (kama utakavyoona katika mifano iliyo hapa chini) kwamba maagizo mengi ya Sikiliza yanaweza kutumika kwa wakati mmoja kubainisha anwani na milango mingi ya kusikiliza. Chaguo hili huelekeza seva kujibu maombi kutoka kwa anwani na bandari zozote zilizoorodheshwa.

Kuweka Wapangishi Pepe kulingana na Jina

Wazo la seva pangishi pepe hufafanua tovuti ya mtu binafsi (au kikoa) ambayo inahudumiwa na mashine sawa. Kwa kweli, tovuti/vikoa vingi vinaweza kutolewa kutoka kwa seva moja \halisi kama seva pangishi pepe. Utaratibu huu ni wazi kwa mtumiaji wa mwisho, ambaye inaonekana kuwa tovuti tofauti zinahudumiwa na mahususi. seva za wavuti.

Upangishaji pepe unaotegemea jina huruhusu seva kutegemea mteja kuripoti jina la mpangishaji kama sehemu ya vichwa vya HTTP. Kwa hivyo, kwa kutumia mbinu hii, wahudumu wengi tofauti wanaweza kushiriki anwani sawa ya IP.

Kila seva pangishi pepe imesanidiwa katika saraka ndani ya DocumentRoot. Kwa upande wetu, tutatumia vikoa vifuatavyo vya dummy kwa usanidi wa majaribio, kila moja iko kwenye saraka inayolingana:

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

Ili kurasa zionyeshwe ipasavyo, tutachmod kila saraka ya VirtualHost hadi 755:

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

Kisha, unda sampuli ya index.html faili ndani ya kila public_html saraka:

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

Hatimaye, katika CentOS na openSUSE ongeza sehemu ifuatayo chini ya /etc/httpd/conf/httpd.conf au / nk/apache2/httpd.conf, kwa mtiririko huo, au tu kurekebisha ikiwa tayari iko.

<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>

Tafadhali kumbuka kuwa unaweza pia kuongeza kila ufafanuzi wa seva pangishi katika faili tofauti ndani ya saraka ya /etc/httpd/conf.d. Ukichagua kufanya hivyo, kila faili ya usanidi lazima iitwe kama ifuatavyo:

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

Kwa maneno mengine, unahitaji kuongeza .conf kwenye tovuti au jina la kikoa.

Katika Ubuntu, kila faili ya usanidi ya mtu binafsi inaitwa /etc/apache2/sites-available/[site name].conf. Kisha kila tovuti huwashwa au kuzimwa kwa a2ensite au a2dissite amri, mtawalia, kama ifuatavyo.

# 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

Amri za a2ensite na a2dissite huunda viungo vya faili ya usanidi wa seva pangishi na kuziweka (au kuziondoa) katika /etc/apache2/sites-enabled saraka.

Ili kuweza kuvinjari tovuti zote mbili kutoka kwa kisanduku kingine cha Linux, utahitaji kuongeza mistari ifuatayo katika faili ya /etc/hosts katika mashine hiyo ili kuelekeza upya maombi kwa vikoa hivyo kwa IP mahususi. anwani.

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

Kama kipimo cha usalama, SELinux haitaruhusu Apache kuandika kumbukumbu kwenye saraka isipokuwa ya msingi /var/log/httpd.

Unaweza kuzima SELinux, au kuweka muktadha sahihi wa usalama:

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

ambapo xxxxxx ni saraka ndani /var/www/html ambapo umefafanua Majeshi yako ya Virtual.

Baada ya kuanzisha tena Apache, unapaswa kuona ukurasa ufuatao kwenye anwani zilizo hapo juu:

Kufunga na Kusanidi SSL na Apache

Hatimaye, tutaunda na kusakinisha cheti cha kujiandikisha ili kutumia na Apache. Aina hii ya usanidi inakubalika katika mazingira madogo, kama vile LAN ya kibinafsi.

Hata hivyo, ikiwa seva yako itafichua maudhui kwa ulimwengu wa nje kwenye Mtandao, utataka kusakinisha cheti kilichotiwa saini na mtu au kampuni nyingine ili kuthibitisha uhalisi wake. Vyovyote vile, cheti kitakuruhusu kusimba kwa njia fiche maelezo ambayo yanatumwa, kutoka, au ndani ya tovuti yako.

Katika CentOS na openSUSE, unahitaji kusakinisha mod_ssl kifurushi.

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

Ambapo katika Ubuntu itabidi uwashe moduli ya ssl kwa Apache.

# a2enmod ssl

Hatua zifuatazo zinafafanuliwa kwa kutumia seva ya majaribio ya CentOS, lakini usanidi wako unapaswa kuwa karibu kufanana katika usambazaji mwingine (ikiwa unakumbana na aina yoyote ya maswala, usisite kuacha maswali yako kwa kutumia maoni. fomu).

Hatua ya 1 [Chaguo]: Unda saraka ili kuhifadhi vyeti vyako.

# mkdir /etc/httpd/ssl-certs

Hatua ya 2: Tengeneza cheti chako kilichotiwa saini na ufunguo utakaokilinda.

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

Maelezo mafupi ya chaguzi zilizoorodheshwa hapo juu:

  1. req -X509 inaonyesha kuwa tunaunda cheti cha x509.
  2. -nodi (NO DES) inamaanisha \usimbe ufunguo kwa njia fiche.
  3. -siku 365 ni idadi ya siku ambazo cheti kitakuwa halali kwake.
  4. -newkey rsa:2048 huunda ufunguo wa RSA wa 2048-bit.
  5. -keyout /etc/httpd/ssl-certs/apache.key ndiyo njia kamili ya ufunguo wa RSA.
  6. -out /etc/httpd/ssl-certs/apache.crt ndiyo njia kamili ya cheti.

Hatua ya 3: Fungua faili yako uliyochagua ya usanidi wa seva pangishi (au sehemu yake inayolingana katika /etc/httpd/conf/httpd.conf kama ilivyoelezwa hapo awali) na uongeze mistari ifuatayo kwenye tamko la seva pangishi inayosikiza kwenye mlango 443.

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

Tafadhali kumbuka kuwa unahitaji kuongeza.

NameVirtualHost *:443

juu, chini kabisa

NameVirtualHost *:80

Maagizo yote mawili yanaelekeza apache kusikiliza kwenye milango 443 na 80 ya violesura vyote vya mtandao.

Mfano ufuatao umechukuliwa kutoka /etc/httpd/conf/httpd.conf:

Kisha anza tena Apache,

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

Na uelekeze kivinjari chako kwa https://www.ilovelinux.com. Utawasilishwa na skrini ifuatayo.

Endelea na ubofye \Ninaelewa hatari” na \Ongeza ubaguzi”.

Hatimaye, angalia \Hifadhi hii isiyofuata kanuni na ubofye \Thibitisha Kutofuata Sheria kwa Usalama.

Na utaelekezwa kwenye ukurasa wako wa nyumbani kwa kutumia https.

Muhtasari

Katika chapisho hili tumeonyesha jinsi ya kusanidi Apache na kulingana na jina upangishaji pepe kwa kutumia SSL ili kulinda utumaji data. Iwapo kwa sababu fulani ulikumbana na masuala yoyote, jisikie huru kutufahamisha kwa kutumia fomu ya maoni iliyo hapa chini. Tutafurahi kukusaidia kufanya usanidi uliofanikiwa.

Soma Pia

  1. Apache IP Based and Name Based Upangishaji Mtandaoni
  2. Kuunda Sevasji pepe za Apache kwa kutumia Washa/Zima Chaguo za Vhosts
  3. Fuatilia \Seva ya Wavuti ya Apache Kwa Kutumia \Zana ya Apache GUI