If it is not explicitly told in following recipe, setting up services are described for Ubuntu 16.04 server, but applications are described for Ubuntu 16.04 and/or Lubuntu 16.04 workstation. If you use different Ubuntu version or Linux distribution, settings as well as content, names and places of configuration files may be different!
Got it.

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. Ja nepieciešams, izveido servera privātā/publiskā atslēgu pāra sertifikātus:

    sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout myserver.key -out 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.

  2. Ja nepieciešams, izveido sertifikāta pieprasījumu:

    openssl req -new -key myserver.key -out myserver.csr
  3. Ja sertifikāta faili ir iegūti sertifikātu reģistrā:
    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
  4. Novieto failus sekojoši:
    1. .crt failu(s) mapē /etc/ssl/certs/
    2. .key failu mapē /etc/ssl/private/
  5. Iespējo Apache SSL moduli ar komandu:

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

    <ifmodule mod_ssl.c>
        Listen 443
    </ifmodule>
  7. Pārliecinās, ka /etc/apache2/sites-available noklusētais ports ir 80 un sākuma rinda izskatās kā <VirtualHost *:80> nevis <VirtualHost *:*>
  8. 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ī

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

  10. 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
  11. Iespējo Apache servera SSL vietni un pārstartē Apache serveri:

    a2ensite default-ssl
    /etc/init.d/apache2 restart
  12. Ja nepieciešams, pārbauda iestatījumu failu sintaksi:

    apachectl configtest))

    1. Pieslēdzas serverim uz https://localhost/

    Kļūdu risināšana

    1. Ja nepieciešams, pārbauda privātās atslēgas, servera sertifikāta un sertifikāta pieprasījuma jaucējsummas:

      openssl pkey -in myserver.key -pubout -outform pem | sha256sum;
      openssl x509 -in myserver.crt -pubkey -noout -outform pem | sha256sum;
      openssl req -in myserver.csr -pubkey -noout -outform pem | sha256sum;
    2. 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 TLSv1.2
    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.

    Alternatīva — HTTPS ar Let's Encrypt

    Skatīt https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-18-04

    Pārsūtīšanas likumi

    No HTTP uz HTTPS

    Failā 000-default.conf (vai tajā, kurā ir rinda <VirtualHost *:80>) pievieno rindas:

    <VirtualHost *:80>
    ...
            ServerName aa.bb
    ...
            # Redirect to HTTPS:
            RewriteEngine on
            RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=301]
    </VirtualHost>

    No www.aa.bb uz aa.bb

    Failā default-ssl.conf (vai tajā, kurā ir rinda <VirtualHost *:443>) pievieno rindas:

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ...
            ServerName aa.bb
    ...
            # Redirect to site without www
            RewriteEngine On
            RewriteCond %{HTTP_HOST} ^www.%{SERVER_NAME}$ [NC]
            RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=301]
    </VirtualHost>
    </IfModule>

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

    Sākuma mapes nomaiņa

    Lai nomainītu sākuma mapi uz citu, failos 000-default.conf (un, ja nepieciešams, default-ssl.conf):

    1. izmaina rindu no:

      DocumentRoot /var/www/html

      uz, piemēram:

      DocumentRoot /home/moodle
    2. Pārstartē apache serveri.

    .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

    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


  
Tags Linux Tīmeklis Serveris
Created by Valdis Vītoliņš on 2008-08-08 09:20
Last modified by Valdis Vītoliņš on 2021-08-20 18:25
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License