Apache tīmekļa serveris
Saturs
- Uzstādīšana
- Nosaukuma iestatīšana
- HTTPS uzstādīšana
- Pārsūtīšanas likumi
- Mapes iekļaušana
- Indeksēšanas aizliegšana
- Sākuma mapes nomaiņa
- .htaccess atļaušana
- Mapes pieeja ar vārdu un paroli
- Skatīt arī
- Saites
Uzstādīšana
Kā root lietotājs izpilda komandu:
apt-get install apache2Ja 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- Pārliecinās ar pārlūkprogrammu, ka, atverot adresi http://localhost/, parādās Apache servera paziņojums It works!
Nosaukuma iestatīšana
Izveido failu /etc/apache2/conf-available/servername.conf ar saturu:
ServerName myservernameIespējo Apache moduli:
sudo a2enconf servername- 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.
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.crtun 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.
Ja nepieciešams, izveido sertifikāta pieprasījumu:
openssl req -new -key myserver.key -out myserver.csr- Ja sertifikāta faili ir iegūti sertifikātu reģistrā:
Ja nepieciešams, *.pem failu konvertē uz *.crt failu ar, piemēram, sekojošu komandu:
openssl x509 -outform der -in site.pem -out site.crtJa nepieciešams, *.crt failu uz *.pem failu konvertē sekojoši:
openssl x509 -in ca.crt -out ca.pem -outform PEM
- Novieto failus sekojoši:
- .crt failu(s) mapē /etc/ssl/certs/
- .key failu mapē /etc/ssl/private/
Iespējo Apache SSL moduli ar komandu:
a2enmod sslPārliecinās, ka /etc/apache2/ports.conf fails satur rindas:
<ifmodule mod_ssl.c>
Listen 443
</ifmodule>- Pārliecinās, ka /etc/apache2/sites-available noklusētais ports ir 80 un sākuma rinda izskatās kā <VirtualHost *:80> nevis <VirtualHost *:*>
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ī
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-sslkur myserver.crt un myserver.key ir attiecīgie sertifikāta un privātās atslēgas faili.
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.keyIespējo Apache servera SSL vietni un pārstartē Apache serveri:
a2ensite default-ssl
/etc/init.d/apache2 restartJa nepieciešams, pārbauda iestatījumu failu sintaksi:
apachectl configtest- Pieslēdzas serverim uz https://localhost/
Kļūdu risināšana
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;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
Kā root lietotājs atver failu /etc/apache2/mods-enabled/ssl.conf un izmaina rindas:
SSLProtocol all -SSLv2uz
SSLProtocol TLSv1.2Pievieno rindas /etc/apache2/mods-enabled/ssl.conf failā:
SSLCompression off
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH- 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:
Saskaņā ar šo un šo instrukciju, izpilda komandas:
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
Pārsūtīšanas likumi
No HTTP uz HTTPS
Failā 000-default.conf (vai tajā, kurā ir rinda <VirtualHost *:80>) pievieno rindas:
...
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:
<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:
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.
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
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):
izmaina rindu no:
DocumentRoot /var/www/htmluz, piemēram:
DocumentRoot /home/moodle- Pārstartē apache serveri.
.htaccess atļaušana
Lai atļautu .htaccesss failu lietotšanu:
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
...Pārstartē Apache serveri:
/etc/init.d/apache2 restart
Mapes pieeja ar vārdu un paroli
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>Izveido Apache paroļu failu, ievadot komandu:
htpasswd -cm /etc/apache2/apache-passwd userun divas reizes ievada lietotāja paroli, pārējiem lietotājiem slēdzi -c nevajag.
Pārstartē Apache:
sudo /etc/init.d/apache2 restart
Skatīt arī
- Awstats tīmekļa žurnāla analizators
- Apache starpniekserveris
- PHP un MySQL atbalsts Apache serverī
- Apache keša serveris
- Munin veiktspējas pārraudzības rīks
Saites
- http://www.thegeekstuff.com/2008/08/9-tips-to-use-apachectl-and-httpd-like-a-power-user/
- http://www.dedoimedo.com/computers/apache_book_part.html
- http://kainotes.blogspot.com/2008/08/creating-ssl-certificate-for-apache-on.html
- http://httpd.apache.org/docs/2.2/misc/perf-tuning.html
Created by Valdis Vītoliņš on 2008-08-08 09:20
Last modified by Valdis Vītoliņš on 2022-02-03 17:12