Website-Suche

Erstellen Sie virtuelle Hosts, generieren Sie SSL-Zertifikate und -Schlüssel und aktivieren Sie das CGI-Gateway in Gentoo Linux


Das letzte Tutorial zum Installieren von LAMP unter Gentoo Linux behandelte lediglich den grundlegenden Installationsprozess ohne zusätzliche Einstellungen für Apache, um Ihre Domänen besser steuern zu können.

Dieses Tutorial ist eng mit dem vorherigen Tutorial zu Gentoo LAMP verbunden und bespricht zusätzliche Einstellungen für die LAMP-Umgebung, wie z. B. das Erstellen von Virtual Hosts auf Apache, das Generieren von >SSL-Zertifikatdateien und -Schlüssel, aktivieren Sie das sichere SSL-Protokoll für HTTP-Transaktionen und verwenden Sie Apache CGI Gateway, damit Sie Perl ausführen können Bash-Skripte über Ihre Website.

Anforderungen

  1. Installieren Sie LAMP unter Gentoo Linux

Schritt 1: Erstellen Sie virtuelle Apache-Hosts

In diesem Thema wird ein gefälschter Domänenname – gentoo.lan – verwendet, der über die lokale Hosts-Datei aktiviert wird, wobei Website-Dateien von /var/www/gentoo.lanDocumentRoot“ bereitgestellt werden -Direktive ohne gültigen DNS-Eintrag, um zu demonstrieren, wie mehrere virtuelle Hosts auf Gentoo mithilfe des Apache-Webservers aktiviert werden können.

1. Öffnen Sie zunächst die Gentoo-Hosts-Datei zur Bearbeitung und fügen Sie eine neue Zeile mit Ihrem Domainnamen hinzu.

sudo nano /etc/hosts

Lassen Sie die Datei am Ende so aussehen.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. Testen Sie Ihre gefälschte Domain mit dem ping-Befehl und die Domain sollte mit ihrer IP-Adresse antworten.

ping -c2 gentoo.lan

3. Der Vorgang zur Aktivierung von Apache Virtual Hosts ist recht einfach. Öffnen Sie einfach die Apache-Standarddatei für virtuelle Hosts, die sich im Pfad /etc/apache2/vhosts.d/ befindet, und geben Sie vor der letzten -Anweisung Ihre neue Definition des virtuellen Hosts ein, die unter < eingeschlossen ist-Anweisungen. C

Enthält Ihre benutzerdefinierten Einstellungen wie ServerName und DocumentRoot Pfad. Verwenden Sie die folgende Dateivorlage als Leitfaden für einen neuen virtuellen Host und fügen Sie sie in die Datei 00_default_vhost.conf ein (für Nicht-SSL-Websites).

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>

Wie Sie an der Visualisierung dieses Dateiinhalts sehen können, ist die Datei ausführlich mit Erläuterungen kommentiert und enthält auch die Definition des virtuellen Hosts localhost – die Sie als Leitfaden verwenden können.

4. Nachdem Sie die Bearbeitung der Datei mit Ihrem benutzerdefinierten virtuellen Host abgeschlossen haben, starten Sie Apache neu, um die Einstellungen zu übernehmen, und stellen Sie sicher, dass Sie das Verzeichnis DocumentRoot erstellen, falls Sie diese Anweisung geändert haben und der Pfad dies nicht tut Ist standardmäßig nicht vorhanden (in diesem Fall wurde es in /var/www/gentoo.lan geändert). Ich habe auch eine kleine PHP-Datei erstellt, um Webserverkonfigurationen zu testen.

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

5. Um es zu überprüfen, öffnen Sie einen Browser und geben Sie Ihren virtuellen Domänennamen http://gentoo.lan/info.php ein.

Mit diesem Verfahren können Sie mithilfe von Apache Virtual Hosts so viele Nicht-SSL-Websites hinzufügen, wie Sie möchten. Bei einer echten Maschine mit Internetverbindung stellen Sie jedoch sicher, dass Ihre Domänen registriert sind und Sie gültige DNS-Servereinträge verwenden.

Um einen virtuellen Host zu entfernen, kommentieren Sie ihn einfach aus oder löschen Sie seine Anweisungen unter in der Datei 00_default_vhost.conf.

Schritt 2: SSL-Zertifikate und Schlüssel für virtuelle Hosts generieren

SSL ist ein kryptografisches Protokoll, das zum Austausch von Informationen über einen sicheren Kommunikationskanal im Internet oder innerhalb von Netzwerken mithilfe von Zertifikaten und symmetrischen/asymmetrischen Schlüsseln verwendet wird.

6. Um den Prozess der Zertifikats- und Schlüsselgenerierung zu vereinfachen, verwenden Sie das folgende Bash-Skript, das als Befehl fungiert und automatisch alle erforderlichen Einstellungen für Ihren SSL-Domänennamen erstellt.

Beginnen Sie zunächst mit der Erstellung eines Bash-Skripts mit dem folgenden Befehl.

sudo nano /usr/local/bin/apache_gen_ssl

Fügen Sie den folgenden Dateiinhalt hinzu.

#!/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. Nachdem die Datei erstellt wurde, fügen Sie ihr Ausführungsberechtigungen hinzu und führen Sie sie aus, um SSL-Schlüssel und Zertifikate zu generieren.

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

Wenn Sie es zum ersten Mal ausführen, werden Sie aufgefordert, Ihren Domänennamen einzugeben. Geben Sie Ihren Domänennamen ein, für den Sie SSL-Einstellungen generieren, und füllen Sie das Zertifikat mit den erforderlichen Informationen aus. Der wichtigste davon, Common Name, verwenden Sie den FQDN Ihres Servers.

Der Standardspeicherort, an dem alle Ihre Zertifikate und Schlüssel mit dieser Methode gehostet werden, ist /etc/apache2/ssl/.

8. Jetzt ist es an der Zeit, ein gentoo.lan Virtual Host SSL-Äquivalent zu erstellen. Verwenden Sie die gleiche Methode wie für virtuelle Nicht-SSL-Hosts, bearbeiten Sie jedoch diesmal die Datei /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf mit geringfügigen Änderungen.

Öffnen Sie zunächst die Datei zur Bearbeitung und nehmen Sie die folgenden Änderungen vor.

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

Fügen Sie unter der Anweisung Listen 443 den folgenden Inhalt hinzu.

NameVirtualHost *:443

Verwenden Sie die folgende Vorlage für einen neuen virtuellen Host und fügen Sie ein neues SSL-Zertifikat + Schlüsselpfad und -namen hinzu.

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

Die Definitionen virtueller Hosts müssen vor diesen letzten drei Anweisungen enden.

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

9. Nachdem Sie die Bearbeitung der Virtual Host-Datei abgeschlossen haben, starten Sie den Apache-Dienst neu und leiten Sie Ihren Browser mithilfe des HTTPS-Protokolls https://gentoo.lan zu Ihrer Domäne weiter.

sudo /etc/init.d/apache2 restart

Mit diesem Verfahren können Sie mithilfe von Apache Virtual Hosts SSL-Websites mit eigenen Zertifikaten und Schlüsseln hinzufügen. Um SSL Virtual Hosts zu entfernen, kommentieren Sie die unter in der Datei /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf enthaltenen Anweisungen aus oder löschen Sie sie.

Schritt 3: CGI-Schnittstelle aktivieren

Das CGI (Common Gateway Interface) ermöglicht es Apache, mit externen Programmen zu interagieren, die hauptsächlich aus Perl- oder BASH-Skripten bestehen und Ihrer Website dynamische Inhalte hinzufügen können.

10. Bevor Sie das CGI-Gateway aktivieren, stellen Sie sicher, dass Apache mit der Unterstützung für USE CGI-Modulflags in der Portage-Datei make.conf kompiliert wurde: cgi cgid . Um die GCI-Unterstützung für Apache zu aktivieren, öffnen Sie die Datei /etc/conf.d/apache2 und hängen Sie das CGI-Modul in die Zeile APACHE2_OPTS ein.

sudo nano /etc/conf.d/apache2

Stellen Sie sicher, dass diese Zeile einen ähnlichen Inhalt hat.

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

11. Nachdem die CGI-Module aktiviert wurden, öffnen Sie Ihren Website-Definitionshost, auf dem Sie die CGI-Schnittstelle aktivieren möchten, und fügen Sie den folgenden Inhalt in die Virtual Host-Anweisungen ein.

<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. Wenn Sie in Ihrem DocumentRoot-Pfad (/var/www/gentoo.lan/) ein Verzeichnis haben, das CGI-Skripte enthält, können Sie nur dieses Verzeichnis für die Bereitstellung von dynamischem Perl aktivieren oder Bash-Skripte.

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. Für SSI (Server Side Includes) hängen Sie die Anweisung +Includes an Optionen an und fügen Sie die Dateierweiterung .shtml hinzu.

<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. Um einige einfache .cgi- und .pl-Skripte auf dem Apache CGI-Gateway zu testen, erstellen Sie die folgenden Skripte in Ihrem Virtual Host DocumentRoot ( /var/www/gentoo.lan/).

Perl-Skript
sudo nano /var/www/gentoo.lan/env.pl

Fügen Sie den folgenden Perl-Inhalt hinzu.

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

Fügen Sie den folgenden Bash-Inhalt hinzu.

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

15. Nachdem die Dateien erstellt wurden, machen Sie sie ausführbar, starten Sie den Apache-Daemon neu und verweisen Sie Ihren Browser auf die folgenden URLs.

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

Jetzt können Sie Gentoo in eine leistungsstarke Webhosting-Plattform mit Feinabstimmungseinstellungen für Ihre Systemleistung und maximaler Kontrolle über Ihre gesamte Umgebung verwandeln.