Giunsa ang Pag-setup sa Standalone Apache Server nga adunay Virtual Hosting nga Gibase sa Ngalan nga adunay Sertipiko sa SSL - Bahin 4


Ang LFCE (mubo sa Linux Foundation Certified Engineer) usa ka nabansay nga propesyonal nga adunay kahanas sa pag-install, pagdumala, ug pag-troubleshoot sa mga serbisyo sa network sa mga sistema sa Linux, ug nagdumala sa ang disenyo, pagpatuman ug padayon nga pagmentinar sa arkitektura sa sistema.

Niini nga artikulo ipakita namo kanimo kung unsaon pag-configure ang Apache aron mag-alagad sa sulud sa web, ug kung giunsa ang pag-set up nga nakabase sa ngalan nga virtual host ug SSL, lakip ang usa ka sertipiko nga gipirmahan sa kaugalingon.

Pagpaila sa Linux Foundation Certification Program (LFCE).

Mubo nga sulat: Nga kining artikuloha dili unta usa ka komprehensibo nga giya sa Apache, kondili usa ka punto sa pagsugod sa kaugalingon nga pagtuon mahitungod niini nga hilisgutan alang sa LFCE nga eksaminasyon. Tungod niana nga hinungdan wala kami nagsakup sa pagbalanse sa load sa Apache sa kini nga panudlo usab.

Mahimong nahibal-an na nimo ang ubang mga paagi aron mahimo ang parehas nga mga buluhaton, nga OK nga gikonsiderar nga ang Linux Foundation Certification kay higpit nga gibase sa pasundayag. Busa, basta ‘mahuman nimo ang trabaho’, dako ang imong kahigayonan nga makapasar sa eksaminasyon.

Palihug tan-awa ang Bahin 1 sa kasamtangang serye (\Pag-instalar sa Mga Serbisyo sa Network ug Pag-configure sa Awtomatikong Pagsugod sa Boot) alang sa mga panudlo sa pag-instalar ug pagsugod sa Apache.

Sa pagkakaron, kinahanglan nimo nga i-install ug ipadagan ang Apache web server. Mahimo nimong pamatud-an kini sa mosunod nga sugo.

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

Matikdi: Nga ang sugo sa ibabaw nagsusi sa presensya sa apache o httpd (ang labing komon nga mga ngalan sa web daemon) taliwala sa listahan sa mga nagadagan nga proseso. Kung ang Apache nagdagan, makakuha ka og output nga susama sa mosunod.

Ang katapusang pamaagi sa pagsulay sa pag-install sa Apache ug pagsusi kung kini nagdagan mao ang paglansad sa usa ka web browser ug itudlo ang IP sa server. Kinahanglang ipakita kanamo ang mosunod nga screen o labing menos usa ka mensahe nga nagpamatuod nga ang Apache nagtrabaho.

Pag-configure sa Apache

Ang nag-unang configuration file alang sa Apache mahimong mahimutang sa lain-laing mga direktoryo depende sa imong pag-apod-apod.

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

Maayo na lang alang kanamo, ang mga direktiba sa pag-configure maayo kaayo nga nadokumento sa web site sa proyekto sa Apache. Atong hisgotan ang pipila niini sa tibuok niini nga artikulo.

Ang pinaka-basic nga paggamit sa Apache mao ang pag-alagad sa mga web page sa usa ka standalone server diin wala pa'y virtual host nga na-configure. Ang DocumentRoot nga direktiba nagtakda sa direktoryo diin ang Apache mag-alagad sa mga dokumento sa web page.

Timan-i nga pinaagi sa default, ang tanan nga mga hangyo gikuha gikan sa kini nga direktoryo, apan mahimo usab nimo gamiton ang simbolikong mga link ug/o mga alyas mahimo usab nga gamiton aron itudlo ang ubang mga lokasyon.

Gawas kon gipares sa Alias nga direktiba (nga nagtugot sa mga dokumento nga tipigan sa lokal nga filesystem imbes ubos sa direktoryo nga gitakda sa DocumentRoot), ang server modugang sa agianan gikan sa gihangyo nga URL sa gamut sa dokumento aron mahimo ang agianan sa dokumento.

Pananglitan, gihatag ang mosunod nga DocumentRoot:

Kung ang web browser magpunting sa [Server IP o hostname]/lfce/tecmint.html, ang server moabli /var/ www/html/lfce/tecmint.html (nagtuo nga ang maong file anaa) ug i-save ang panghitabo sa access log niini nga adunay 200 (OK) nga tubag.

Ang access log kasagarang makita sulod sa /var/log ubos sa representante nga ngalan, sama sa access.log o access_log. Mahimo pa nimo makit-an kini nga log (ug ang error log usab) sulod sa usa ka subdirektoryo (pananglitan, /var/log/httpd sa CentOS). Kung dili, ang napakyas nga panghitabo ma-log gihapon sa log sa pag-access apan adunay tubag nga 404 (Not Found).

Dugang pa, ang mga napakyas nga panghitabo irekord sa log sa sayup:

Ang pormat sa access log mahimong ipasibo sumala sa imong panginahanglan gamit ang LogFormat nga direktiba sa main configuration file, samtang dili nimo mahimo ang sama sa error log .

Ang default nga pormat sa access log mao ang mosunod:

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

Kung diin ang matag usa sa mga letra nga giunhan sa usa ka porsyento nga timaan nagpaila sa server nga mag-log sa usa ka piho nga piraso sa kasayuran:

ug ang angga maoy opsyonal nga alyas nga mahimong gamiton sa pag-customize sa ubang mga log nga dili na kinahanglang mosulod pag-usab sa tibuok string sa configuration.

Mahimo nimong i-refer ang LogFormat nga direktiba [Custom log formats section] sa Apache docs para sa dugang nga mga kapilian.

Ang duha ka log files (access ug error) nagrepresentar sa usa ka maayo nga kapanguhaan aron dali nga pag-analisar sa usa ka pagtan-aw kung unsa ang nahitabo sa Apache server. Dili kinahanglan nga isulti, sila ang una nga himan nga gigamit sa usa ka tagdumala sa sistema aron masulbad ang mga isyu.

Sa kataposan, laing importanteng direktiba mao ang Paminaw, nga nagsulti sa server sa pagdawat sa umaabot nga mga hangyo sa gipiho nga pantalan o kombinasyon sa adres/port:

Kung usa lamang ka numero sa pantalan ang gihubit, ang apache maminaw sa gihatag nga pantalan sa tanan nga mga interface sa network (ang wildcard sign * gigamit aron ipakita ang 'tanan nga mga interface sa network').

Kung ang duha nga IP address ug pantalan gitakda, nan ang apache maminaw sa kombinasyon sa gihatag nga port ug interface sa network.

Palihug timan-i (sama sa imong makita sa mga pananglitan sa ubos) nga daghang mga direktiba sa Pamati mahimong magamit sa parehas nga oras aron mahibal-an ang daghang mga adres ug pantalan nga paminawon. Kini nga opsyon nagmando sa server sa pagtubag sa mga hangyo gikan sa bisan asa sa nalista nga mga adres ug mga pantalan.

Pag-set up sa Name-Based Virtual Hosts

Ang konsepto sa virtual host naghubit sa usa ka indibidwal nga site (o domain) nga gisilbihan sa parehas nga pisikal nga makina. Sa tinuud, daghang mga site/dominyo ang mahimong isilbi sa usa ka server nga \tinuod ingon virtual host. Kini nga proseso klaro sa katapusan nga tiggamit, kung kinsa ang makita nga ang lainlaing mga site giserbisyuhan sa lahi. mga web server.

Ang virtual hosting nga nakabase sa ngalan nagtugot sa server nga mosalig sa kliyente nga i-report ang hostname isip bahin sa mga header sa HTTP. Busa, gamit kini nga teknik, daghang lain-laing mga host ang makapaambit sa samang IP address.

Ang matag virtual host gi-configure sa usa ka direktoryo sulod sa DocumentRoot. Para sa among kaso, among gamiton ang mosunod nga dummy domains para sa testing setup, ang matag usa nahimutang sa katugbang nga direktoryo:

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

Aron ang mga panid mapakita sa hustong paagi, among chmod ang matag direktoryo sa VirtualHost ngadto sa 755:

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

Sunod, paghimo ug sample index.html file sulod sa matag public_html nga direktoryo:

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

Sa katapusan, sa CentOS ug openSUSE idugang ang mosunod nga seksyon sa ubos sa /etc/httpd/conf/httpd.conf o / etc/apache2/httpd.conf, matag usa, o usba lang kini kung naa na.

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

Palihug timan-i nga mahimo usab nimong idugang ang matag kahulugan sa virtual host sa bulag nga mga file sulod sa /etc/httpd/conf.d nga direktoryo. Kung gipili nimo nga buhaton kini, ang matag file sa pag-configure kinahanglan nga nganlan sa mosunod:

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

Sa laing pagkasulti, kinahanglan nimong idugang ang .conf sa site o domain name.

Sa Ubuntu, ang matag indibidwal nga configuration file ginganlan og /etc/apache2/sites-available/[site name].conf. Ang matag site ma-enable o ma-disable gamit ang a2ensite o a2dissite nga mga sugo, matag usa, ingon sa mosunod.

# 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

Ang a2ensite ug a2dissite nga mga sugo naghimo ug mga link sa virtual host configuration file ug ibutang (o tangtangon) kini sa /etc/apache2/sites-enabled direktoryo.

Aron makahimo sa pag-browse sa duha ka mga site gikan sa laing Linux box, kinahanglan nimong idugang ang mosunod nga mga linya sa /etc/hosts file sa maong makina aron ma-redirect ang mga hangyo sa maong mga domain ngadto sa usa ka piho nga IP adres.

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

Isip usa ka sukod sa seguridad, ang SELinux dili motugot sa Apache nga magsulat og mga log sa usa ka direktoryo gawas sa default /var/log/httpd.

Mahimo nimong i-disable ang SELinux, o itakda ang husto nga konteksto sa seguridad:

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

diin ang xxxxxx mao ang direktoryo sa sulod /var/www/html diin imong gihubit ang imong Virtual Hosts.

Human ma-restart ang Apache, kinahanglan nimong makita ang mosunod nga panid sa mga adres sa ibabaw:

Pag-instalar ug Pag-configure sa SSL gamit ang Apache

Sa katapusan, maghimo ug mag-install kami og self-signed nga sertipiko aron magamit sa Apache. Kini nga matang sa setup madawat sa gagmay nga mga palibot, sama sa usa ka pribadong LAN.

Bisan pa, kung ang imong server magpadayag sa sulud sa gawas nga kalibutan sa Internet, gusto nimo nga mag-install usa ka sertipiko nga gipirmahan sa usa ka ikatulo nga partido aron pamatud-an ang pagkatinuod niini. Sa bisan unsang paagi, ang usa ka sertipiko magtugot kanimo sa pag-encrypt sa impormasyon nga gipasa ngadto, gikan, o sulod sa imong site.

Sa CentOS ug openSUSE, kinahanglan nimong i-install ang mod_ssl nga pakete.

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

Samtang sa Ubuntu kinahanglan nimong palihokon ang ssl module para sa Apache.

# a2enmod ssl

Ang mosunod nga mga lakang gipatin-aw gamit ang CentOS test server, apan ang imong setup kinahanglang halos parehas sa ubang mga distribusyon (kon makasugat ka og bisan unsang matang sa mga isyu, ayaw pagpanuko sa pagbilin sa imong mga pangutana gamit ang mga komento porma).

Lakang 1 [Opsyonal]: Paghimo og direktoryo aron tipigan ang imong mga sertipiko.

# mkdir /etc/httpd/ssl-certs

Lakang 2: Paghimo sa imong kaugalingon nga gipirmahan nga sertipiko ug ang yawe nga manalipod niini.

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

Usa ka mubo nga katin-awan sa mga opsyon nga gilista sa ibabaw:

    Ang
  1. req -X509 nagpaila nga naghimo kami ug x509 nga sertipiko.
  2. -nodes (WALAY DES) nagpasabot nga \ayaw i-encrypt ang yawe.
  3. Ang
  4. -days 365 mao ang gidaghanon sa mga adlaw nga mahimong balido ang sertipiko.
  5. -newkey rsa:2048 nagmugna og 2048-bit RSA key.
  6. -keyout /etc/httpd/ssl-certs/apache.key mao ang hingpit nga agianan sa RSA key.
  7. -out /etc/httpd/ssl-certs/apache.crt mao ang hingpit nga agianan sa sertipiko.

Lakang 3: Ablihi ang imong gipili nga virtual host configuration file (o ang katugbang nga seksyon niini sa /etc/httpd/conf/httpd.conf ingon sa gipasabot sa sayo pa) ug idugang ang mosunod nga mga linya sa usa ka virtual host nga deklarasyon nga naminaw sa port 443.

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

Palihug timan-i nga kinahanglan nimong idugang.

NameVirtualHost *:443

sa ibabaw, sa ubos

NameVirtualHost *:80

Ang duha ka direktiba nagtudlo sa apache sa pagpaminaw sa mga port 443 ug 80 sa tanang network interface.

Ang mosunod nga pananglitan gikuha gikan sa /etc/httpd/conf/httpd.conf:

Unya i-restart ang Apache,

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

Ug itudlo ang imong browser sa https://www.ilovelinux.com. Ikaw ipresentar sa mosunod nga screen.

Sige ug i-klik ang \Nakasabot ko sa mga risgo” ug \Add exception.

Sa kataposan, susiha ang \Permanente nga tipigi kini nga eksepsiyon” ug i-klik ang \Kumpirmahi ang Security Exception”.

Ug ikaw ma-redirect sa imong home page gamit ang https.

Summary

Sa niini nga post among gipakita kung unsaon pag-configure ang Apache ug name-based virtual hosting nga adunay SSL aron masiguro ang pagpadala sa datos. Kung sa usa ka hinungdan nakasugat ka sa bisan unsang mga isyu, ayaw pagduhaduha nga ipahibalo kanamo gamit ang porma sa komento sa ubos. Kami labaw nga malipay sa pagtabang kanimo sa paghimo sa usa ka malampuson nga set up.

Basaha Usab

  1. Gibase sa Apache IP ug Gibase sa Ngalan nga Virtual Hosting
  2. Paghimo sa Apache Virtual Hosts gamit ang Enable/Disable Vhosts Options
  3. Monitor \Apache Web Server Gamit ang \Apache GUI Tool