Apache tīmekļa serveris

Saturs

Uzstādīšana

  1. root lietotājs izpilda komandu:

    apt-get install apache2
  2. Ja grib, lai web servera failu saturs atrodas /home mapē, kā root lietotājs izpilda komandas:

    /etc/init.d/apache2 stop
    mv /var/www /home
    ln -s /home/www /var/www
    /etc/init.d/apache2 start
  3. Pārliecinās ar pārlūkprogrammu, ka, atverot adresi http://localhost/, parādās Apache servera paziņojums It works!

Nosaukuma iestatīšana

  1. Izveido failu /etc/apache2/conf-available/servername.conf ar saturu:

    ServerName myservername
  2. Iespējo Apache moduli:

    sudo a2enconf servername
  3. Pārstartē Apache serveri.

HTTPS uzstādīšana

Lai datu plūsmu starp web serveri un klientu nevarētu noklausīties, to nepieciešams šifrēt. Šim nolūkam izmanto SSL protokolu, kas, izmantojot publiskās/privātās atslēgas (PKI) metodi, nodrošina uzticamu un drošu pārraides kanālu starp klientu un serveri.
HTTP pārraidītu pa SSL kanālu, sauc par HTTPS.

  1. Izveidot servera privātā/publiskā atslēgu pāra sertifikātus:

    sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/myserver.key -out /etc/ssl/certs/myserver.crt

    un ievada atbildes uz vedņa uzdotajiem jautājumiem. Ja pirmajās atbildes nešķiet pareizas, komandu var izsaukt atkārtoti, un izveidot jaunu sertifikātu.

    Tā kā šis servera sertifikāts nav autorizēts uzticamās sertifikātu organizācijās kā Verisign vai citās mazākās CA, pārlūkprogramma par to brīdinās
  2. Ja sertifikāta faili ir iegūti sertifikātu reģistrā (piemēram, https://www.digicert.com/):
    1. Ja nepieciešams, *.pem failu konvertē uz *.crt failu ar, piemēram, sekojošu komandu:

      openssl x509 -outform der -in site.pem -out site.crt
    2. Ja nepieciešams, *.crt failu uz *.pem failu konvertē sekojoši:

      openssl x509 -in ca.crt -out ca.pem -outform PEM
  3. Novieto failus sekojoši:
    1. .crt failu(s) mapē /etc/ssl/certs/
    2. .key failu mapē /etc/ssl/private/
  4. Iespējo Apache SSL moduli ar komandu:

    a2enmod ssl
  5. Pārliecinās, ka /etc/apache2/ports.conf fails satur rindas:

    <ifmodule mod_ssl.c>
        Listen 443
    </ifmodule>
  6. Pārliecinās, ka /etc/apache2/sites-available noklusētais ports ir 80 un sākuma rinda izskatās kā <VirtualHost *:80> nevis <VirtualHost *:*>
  7. Ja jau pastāv fails default-ssl, tad pārliecinās, ka tajā ir rindas:

    ...
    SSLEngine on
    ...
    SSLCertificateFile    /etc/ssl/certs/myserver.crt
    ...
    SSLCertificateKeyFile /etc/ssl/private/myserver.key
    ...

    vai arī

  8. Ja nepieciešams, izveido failu no default ar komandām:

    cd /etc/apache2/sites-available
    cp default default-ssl
    sed -i '1,2s/\*:80/*:443/' default-ssl
    sed -i "3a\\\tSSLEngine On\n\tSSLCertificateFile /etc/ssl/certs/myserver.crt\n\tSSLCertificateKeyFile /etc/ssl/private/myserver.key" default-ssl

    kur myserver.crt un myserver.key ir attiecīgie sertifikāta un privātās atslēgas faili.

  9. Ja nepieciešams izmantot vairāk par vienu sertifikātu, (sertifikātu ķēdi), tad norāda tos visus failā /etc/apache2/sites-available/ssl, piemēram, sekojoši:

    SSLCertificateFile /etc/ssl/certs/myserver.crt
    SSLCertificateChainFile /etc/ssl/certs/CA.crt
    ...
    SSLCertificateKeyFile /etc/ssl/private/myserver.key
  10. Iespējo Apache servera SSL vietni un pārstartē Apache serveri:

    a2ensite default-ssl
    /etc/init.d/apache2 restart
  11. Pieslēdzas serverim uz https://localhost/

Saites

Ja ir gatavi *.key un *.cer (*.crt) faili, iespējams, ka atslēgas fails pieprasa paroli. Ar paroli aizsargātu atslēgas failu var pārtaisīt par neaizsargātu (tad jāpārliecinās, ka tam tiek klāt tikai autorizēti lietotāji) sekojoši:

openssl rsa -in myserver.key -out apache1.key

HTTPS pastiprināšana

  1. root lietotājs atver failu /etc/apache2/mods-enabled/ssl.conf un izmaina rindas:

    SSLProtocol all -SSLv2

    uz 

    SSLProtocol -all +TLSv1.1 +TLSv1.2

    -all aizliedz visus pārējos protokolus

  2. Pievieno rindas /etc/apache2/mods-enabled/ssl.conf failā: 

    SSLCompression off
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  3. Pārstartē Apache serveri

Saite: Strong SSL Security on Apache2

TLS sertifikāta atjaunošana

Ja, izpildot CA ieteiktās instrukcijas un pārstartējot Apache parāda kļūdu ziņojumu:

apache SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

Saskaņā ar šo un šo instrukciju, izpilda komandas:

# Izveido jaunu, drošāku atslēgu:
openssl genrsa -des3 -out domain-name.key.sec 2048
# Izveido sertifikāta pieprasījumu:
openssl req -new -key domain-name.key.sec -out domain-name.csr
#Noņem paroli privātajai atslēgai, lai serveri varētu pārstartēt bez paroles:
openssl rsa -in domain-name.key.sec -out domain-name.key

Pēc tam saliek vajadzīgos failus attiecīgajās vietās.

Mapes iekļaušana

Lai padarītu pieejamu failu sistēmas mapi ar failu pārlūkošanu web serverī, iekopē to kā simbolisko saiti zem /var/www. Piemēram:

ln -s /home/vmware/ /var/www/

Lai failu sistēma būtu pārlūkojama www-data vai jebkuram lietotājam vai grupai ir jābūt mapes lasīšanas un izpildes (t.i. pārlūkošanas) tiesībām.

chmod 775 /home/vmware

Indeksēšanas aizliegšana

Ja servera dati ir pieejami tikai autorizētiem lietotājiem, nav vajadzības indeksēt pieejamo (pieteikšanās u.rml.) lapu saturu

User-agent: *
Disallow: /

.htaccess atļaušana

.htaccess ir Apache iestatījumu fails, ar kuru var noteikt katras mapes (attiecīgi arī URL) iestatījumus.
Lai uzlabotu veiktspēju un centralizētu drošības pārvaldību, pēc noklusēšanas {{.htaccess}} failu izmantošana ir aizliegta, un tā vietā ir jāizmanto apache2.conf un no tā iekļautos failus. Bet bieži vien atsevišķās tīmekļa lietotnēs ir nepieciešams izmantot .htaccess failus.

Lai atļautu .htaccesss failu lietotšanu:

  1. Atver /etc/apache2/sites-available/default failu (vai citus, ja izmanto virtuālās vietnes (virtual hosts) un nomaina tajā rindas:

    ...
    AllowOverride None
    ...

    uz 

    ...
    AllowOverride All
    ...
  2. Pārstartē Apache serveri:

    /etc/init.d/apache2 restart

Veiktspējas skaņošana

Apache tīmekļa servera paralēlu darbību nodrošina ar diviem savstarpēji izslēdzošiem (PMP — Multi-Processing Module) moduļu veidiem: prefork un worker. Prefork ir vecāks, vienkāršāks un drošāks paņēmiens, jo veido atsevišķus procesus, tomēr atsevišķu procesu apstrāde un palaišana ir lēnāka, kā Worker modulī, kurā veido atsevišķus pavedienus.

  1. Kā ir nokompilēts konkrētais serveris, apskata, ievadot komandu:

    apache2 -l
  2. Ja parāda:

    Compiled in modules:
    ...
      prefork.c
    ...

    tad serveris darbojas ar prefork moduli

  3. Ja parāda:

    Compiled in modules:
    ...
      worker.c
    ...

    tad serveris darbojas ar worker moduli

  4. Noklusētie iestatījumi ir piemēroti serverim, kas strādā tika kā tīmekļa serveris. Ja tīmekļa funkcijas ir tikai vienas no daudzām, vai serveris tiek izmantots testēšanai, tad noklusētos iestatījumus var samazināt, lai samazinātu servera dīko slodzi. Failā /etc/apache2/apache2.conf nomainot iestatījumus, piemēram, uz sekojošiem:
    1. Prefork modulim:

      ...
      <ifmodule mpm_prefork_module>
          StartServers          2
          MinSpareServers       2
          MaxSpareServers       6
          MaxClients          100
          MaxRequestsPerChild  50
      </ifmodule>
      ...
    2. Worker modulim:

      ...
      <ifmodule mpm_worker_module>
          StartServers          1
          MaxClients           50
          MinSpareThreads       4
          MaxSpareThreads      25
          ThreadsPerChild      10
          MaxRequestsPerChild  50
      </ifmodule>
      ...

Mapes pieeja ar vārdu un paroli

  1. Kā root lietotājs failā /etc/apache2/sites-available/default (un arī citos, piemēram, .../ssl) beigās pievieno rindas:

    ...
        <directory>
    AuthType Basic
    AuthName "Pieeja tikai ar paroli"
    AuthUserFile /etc/apache2/apache-passwd
    Require valid-user
        </directory>
  2. Izveido Apache paroļu failu, ievadot komandu:

    htpasswd -cm /etc/apache2/apache-passwd user

    un divas reizes ievada lietotāja paroli, pārējiem lietotājiem slēdzi -c nevajag.

  3. Pārstartē Apache:

    sudo /etc/init.d/apache2 restart

Skatīt arī

Saites

 

Izveidojis Valdis Vītoliņš 2008-08-08 12:20
Pēdējais mainījis Valdis Vītoliņš 2017-06-02 22:06
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License