Oprettelse af virtuelle værter, generer SSL-certifikater og nøgler og aktiver CGI Gateway i Gentoo Linux


Den sidste tutorial om Installation af LAMP i Gentoo Linux dækkede lige den grundlæggende installationsproces uden yderligere tilgængelige indstillinger for Apache for bedre at kontrollere dine domæner.

Denne tutorial er strengt forbundet med den foregående om Gentoo LAMP og diskuterer ekstra indstillinger for LAMP miljø såsom at oprette Virtuelle værter på Apache, generere SSL certifikatfiler og nøgler, aktiver sikker SSL protokol på HTTP-transaktioner og brug Apache CGI Gateway , så du kan køre Perl eller Bash scripts over dit websted.

  1. Installer LAMP i Gentoo Linux

Trin 1: Opret Apache Virtual Hosts

Dette emne bruger et falsk domænenavn - gentoo.lan - aktiveret via lokal værtsfil, med webstedsfiler serveret fra /var/www/gentoo.lan - DocumentRoot direktiv uden en gyldig DNS -post for at demonstrere, hvordan flere virtuelle værter kan aktiveres på Gentoo ved hjælp af Apache-webserver.

1. For at starte skal du åbne Gentoo-værtsfilen til redigering og tilføje en ny linje med dit domænenavn.

$ sudo nano /etc/hosts

I slutningen af filen får det til at ligne dette.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. Test dit falske domæne med kommandoen ping , og domænet skal svare med sin IP-adresse.

$ ping -c2 gentoo.lan

3. Processen med at aktivere Apache Virtual Hosts er ret enkel. Åbn bare Apache-standard virtuelle værtsfil placeret på /etc/apache2/vhosts.d/ sti og inden sidste erklæring skal du indtaste din nye Virtual Host-definition, der er lukket under direktiver. c

Indeholder dine brugerdefinerede indstillinger som Servernavn og DocumentRoot sti. Brug følgende filskabelon som vejledning til en ny virtuel vært, og inkluder den på filen 00_default_vhost.conf (til ikke-SSL-websteder).

$ sudo nano /etc/apache2/vhosts.d/00_default_vhost.conf
## Another Virtual hosts statemes ending in </VirtualHost> ###

<VirtualHost *:80>
        ServerName gentoo.lan
        DocumentRoot "/var/www/gentoo.lan"
                        <Directory "/var/www/gentoo.lan"
                Options Indexes FollowSymLinks ExecCGI MultiViews
         # AllowOverride controls what directives may be placed in .htaccess files.       
                        AllowOverride All
        # Controls who can get stuff from this server file
                        Order allow,deny
                        Allow from all
        </Directory>
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
</VirtualHost>

## Another Virtual hosts statemes ###
## LAST STATEMENT which closes virtual hosts file ##

</IfDefine>

Som du kan se ved at visualisere dette filindhold, er filen stærkt kommenteret med forklaringer og holder også localhost definitionen af Virtual Host - som du kan bruge den som en guide.

4. Når du er færdig med at redigere filen med din brugerdefinerede virtuelle vært, skal du genstarte Apache for at anvende indstillinger og sørge for at du opretter DocumentRoot -mappe, hvis du har ændret dette direktiv, og stien ikke findes som standard (i denne sag blev ændret til /var/www/gentoo.lan ). Jeg har også oprettet en lille PHP-fil til at teste webserverkonfigurationer.

$ sudo mkdir /var/www/gentoo.lan
$ su "echo '<?php phpinfo(); ?>' > /var/www/gentoo.lan/info.php"
$ sudo /etc/init.d/apache2 restart

5. For at bekræfte det skal du åbne en browser og pege på dit virtuelle domænenavn http: //gentoo.lan/info.php .

Ved hjælp af denne procedure kan du tilføje så mange ikke-SSL-websteder, som du ønsker ved hjælp af Apache Virtual Hosts, men for en rigtig internetvendt maskine skal du sikre dig, at du har dine domæner registreret, og at du bruger gyldige DNS-serveroptegnelser.

For at fjerne en virtuel vært skal du bare kommentere eller slette dens direktiver, der er vedlagt under 00_default_vhost.conf -filen.

Trin 2: Generer SSL-certifikater og nøgler til virtuelle værter

SSL er en kryptografisk protokol, der bruges til at udveksle information over en sikker kommunikationskanal på internettet eller inde i netværk ved hjælp af certifikater og symmetriske/asymmetriske nøgler.

6. For at forenkle generering af certifikater og nøgler skal du bruge følgende Bash-script, der fungerer som en kommando og automatisk opretter alt hvad du har brug for med dine SSL-domænenavnindstillinger.

Start først med at oprette Bash-script ved hjælp af følgende kommando.

$ sudo nano /usr/local/bin/apache_gen_ssl

Tilføj følgende filindhold.

#!/bin/bash
mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
echo -e "Enter a name for this certificate:\nEx: mydomain.lan"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The certificate $cert has been generated!\nPlease link it to Apache SSL website!"
ls -all /etc/apache2/ssl/
exit 0

7. Efter at filen er oprettet, tilføj udfør tilladelser til den og kør den for at generere SSL-nøgler og certifikater.

$ sudo chmod +x /usr/local/bin/apache_gen_ssl
$ sudo apache_gen_ssl

Når du kører det første gang, beder du dig om at indtaste dit domæne navn. Indtast dit domæne navn, som du genererer SSL-indstillinger for, og udfyld certifikatet med de krævede oplysninger. Den vigtigste, Almindeligt navn , brug din server FQDN.

Standardplacering, hvor alle dine certifikater og nøgler hostes ved hjælp af denne metode, er /etc/apache2/ssl/.

8. Nu er det tid til at oprette gentoo.lan Virtual Host SSL-ækvivalent. Brug den samme metode som for ikke-SSL-virtuelle værter, men denne gang redigerer du /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf fil med små ændringer.

Åbn først filen til redigering, og foretag følgende ændringer.

$ sudo nano /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf

Under direktivet Lyt 443 skal du tilføje følgende indhold.

NameVirtualHost *:443

Brug følgende skabelon til en ny virtuel vært, og tilføj nyt SSL-certifikat + nøglesti og navne.

## Another Virtual hosts statemes ending in </VirtualHost> ###

<VirtualHost *:443>
                ServerName gentoo.lan
    DocumentRoot "/var/www/gentoo.lan"
                ErrorLog /var/log/apache2/gentoo.lan-ssl_error_log
                <IfModule log_config_module>
                                TransferLog /var/log/apache2/gentoo.lan-ssl_access_log
                </IfModule>

                SSLEngine on
                SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

## Edit with new generated SSL certificate and key and change path to /etc/apache2/ssl/

		SSLCertificateFile /etc/apache2/ssl/gentoo.lan.crt
		SSLCertificateKeyFile /etc/apache2/ssl/gentoo.lan.key

                <Directory "/var/www/gentoo.lan">
                                Options Indexes FollowSymLinks ExecCGI MultiViews Includes
                                AllowOverride All
			        Order allow,deny
        			Allow from all
                </Directory>

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>

                <Directory "/var/www/gentoo.lan ">
                                SSLOptions +StdEnvVars
                </Directory>

                <IfModule setenvif_module>
                                BrowserMatch ".*MSIE.*" \
                                                nokeepalive ssl-unclean-shutdown \
                                                downgrade-1.0 force-response-1.0
                </IfModule>

                <IfModule log_config_module>
                                CustomLog /var/log/apache2/ssl_request_log \
                                                "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
                </IfModule>
</VirtualHost>

## Another Virtual hosts statements ###

Definitioner af virtuelle værter skal slutte inden de sidste tre udsagn.

</IfModule>
</IfDefine>
</IfDefine>

9. Når du er færdig med at redigere Virtual Host-fil, skal du genstarte Apache-tjenesten og dirigere din browser til dit domæne ved hjælp af HTTPS-protokol https: //gentoo.lan .

$ sudo /etc/init.d/apache2 restart

Ved hjælp af denne procedure kan du tilføje SSL-websteder med deres egne certifikater og nøgler ved hjælp af Apache Virtual Hosts. For at fjerne SSL Virtual Hosts skal du kommentere eller slette dens direktiver, der er vedlagt under /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf filen.

Trin 3: Aktivér CGI-interface

CGI ( Common Gateway Interface ) giver Apache mulighed for at interagere med eksterne programmer, primært bestående af Perl- eller BASH-scripts, som kan tilføje et dynamisk indhold til dit websted.

10. Inden du aktiverer CGI-gateway, skal du sikre dig, at Apache blev kompileret med BRUG CGI -moduler, der understøttes af flag på Portage make.conf -fil: cgi cgid . For at aktivere GCI-understøttelse af Apache skal du åbne filen /etc/conf.d/apache2 og tilføje CGI-modul på linjen APACHE2_OPTS .

$ sudo nano /etc/conf.d/apache2

Sørg for, at denne linje har lignende indhold.

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D STATUS -D CGI"

11. Når CGI-moduler er aktiveret, skal du åbne din webstedsdefinitionshost, du vil aktivere CGI-interface, og tilføje følgende indhold i Virtual Host-direktiverne.

<Directory "/var/www/gentoo.lan">
	Options Indexes +ExecCGI MultiViews
        AddHandler cgi-script .cgi .pl
	DirectoryIndex index.cgi index.php index.html index.pl
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>

12. Hvis du har en mappe inde i din DocumentRoot-sti ( /var/www/gentoo.lan/ ), der indeholder CGI-scripts, kan du aktivere netop denne mappe til at tjene dynamiske Perl- eller Bash-scripts.

ScriptAlias /cgi-bin/ /var/www/gentoo.lan/cgi-bin/

<Location /cgi-bin>
                Options +ExecCGI
AddHandler cgi-script .cgi .pl
 DirectoryIndex index.cgi index.php index.html index.pl
</Location>

13. For SSI (Server Side Includes) skal du tilføje + Inkluderer udsagn om Indstillinger og tilføje .shtml filtypenavn.

<Directory "/var/www/gentoo.lan">
                                Options Indexes +ExecCGI +Includes
                                AddHandler cgi-script .cgi .pl
                AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
        DirectoryIndex index.shtml index.cgi index.pl index.php index.html
                AllowOverride All
                Order allow,deny
                Allow from all
</Directory>

14. For at teste nogle enkle .cgi og .pl scripts på Apache CGI gateway skal du oprette følgende scripts inde i din Virtual Host DocumentRoot (/var/www/gentoo. lan/).

$ sudo nano /var/www/gentoo.lan/env.pl

Tilføj følgende Perl-indhold.

#!/usr/bin/perl
print "Content-type: text/html\n\n"; foreach my $keys (sort keys %ENV) { print "$keys =
$ENV{$keys}<br/>\n";
}
$ sudo nano /var/www/gentoo.lan/run.cgi

Tilføj følgende Bash-indhold.

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "---------------------------------------------------------------------------------"
              ./env.pl 
echo "---------------------------------------------------------------------------------"

15. Når filerne er oprettet, skal du gøre dem eksekverbare, genstarte Apache-dæmonen og pege din browser på følgende webadresser.

$ sudo chmod +x /var/www/gentoo.lan/run.cgi
$ sudo chmod +x /var/www/gentoo.lan/env.pl
$ sudo /etc/init.d/apache2 restart
https://gentoo.lan/run.cgi 

OR

https://gentoo.lan/env.pl

Nu kan du omdanne Gentoo til en kraftfuld webhostingplatform med finindstillingsindstillinger til din systemydelse og maksimal kontrol over hele dit miljø.