So richten Sie den Standalone -Apache -Server mit Namensbasis virtuellem Hosting mit SSL -Zertifikat ein - Teil 4

So richten Sie den Standalone -Apache -Server mit Namensbasis virtuellem Hosting mit SSL -Zertifikat ein - Teil 4

A Lfce (kurz für Linux Foundation Certified Engineer) ist ein ausgebildeter Fachmann, der über das Know -how verfügt, um Netzwerkdienste in Linux -Systemen zu installieren, zu verwalten und zu beheben, und ist für das Design, die Implementierung und die laufende Wartung der Systemarchitektur zuständig.

In diesem Artikel zeigen wir Ihnen, wie Sie Apache zum Servieren von Webinhalten konfigurieren und wie Sie namenbasierte virtuelle Hosts und SSL einrichten, einschließlich eines selbstsignierten Zertifikats.

Linux Foundation Certified Engineer - Teil 4

Einführung des Linux Foundation Certification Program (LFCE).

Notiz: Dass dieser Artikel keine umfassende Anleitung zu Apache sein soll, sondern ein Ausgangspunkt für die Selbststudie zu diesem Thema für die Lfce Prüfung. Aus diesem Grund decken wir in diesem Tutorial auch nicht mit Apache mit Apache aus.

Möglicherweise kennen Sie bereits andere Möglichkeiten, um dieselben Aufgaben auszuführen, nämlich die gleichen Aufgaben, nämlich OK In Anbetracht der Tatsache, dass die Linux Foundation-Zertifizierung ausschließlich leistungsbasierte basierte. So lange wie du ''erledige den Job', Sie haben gute Chancen, die Prüfung zu bestehen.

Anforderungen

Bitte beziehen Sie sich auf Teil 1 der aktuellen Serie („Installieren von Netzwerkdiensten und Konfigurieren des automatischen Starts am Boot“) für Anweisungen zum Installieren und Starten von Apache.

Inzwischen sollten Sie den Apache -Webserver installieren und ausgeführt haben. Sie können dies mit dem folgenden Befehl überprüfen.

# ps -f | grep -ei '(Apache | httpd)' | Grep -v Grep 

Notiz: Dass der obige Befehl überprüft, ob die Anwesenheit von beider ist Apache oder httpd (Die gebräuchlichsten Namen für den Web -Daemon) in der Liste der laufenden Prozesse. Wenn Apache ausgeführt wird, erhalten Sie die Ausgabe ähnlich wie folgt.

Überprüfen Sie Apache -Prozesse

Die ultimative Methode zum Testen der Apache -Installation und der Überprüfung, ob sie ausgeführt wird. Wir sollten mit dem folgenden Bildschirm oder zumindest eine Nachricht präsentiert werden, die bestätigt, dass Apache funktioniert.

Überprüfen Sie die Apache -Webseite

Apache konfigurieren

Die Hauptkonfigurationsdatei für Apache kann je nach Verbreitung in verschiedenen Verzeichnissen gefunden werden.

/etc/apache2/apache2.conf [für Ubuntu]/etc/httpd/conf/httpd.conf [für CentOs]/etc/apache2/httpd.conf [für OpenSuse] 

Zum Glück sind die Konfigurationsrichtlinien für uns auf der Website von Apache Project sehr gut dokumentiert. Wir werden uns in diesem Artikel auf einige von ihnen beziehen.

Servieren von Seiten in einem eigenständigen Server mit Apache

Die grundlegendste Verwendung von Apache besteht darin, Webseiten auf einem eigenständigen Server zu bedienen, auf dem noch keine virtuellen Hosts konfiguriert wurden. Der Dokument Root Die Richtlinie gibt das Verzeichnis an, aus dem Apache Webseiten -Dokumente bedient.

Beachten Sie, dass standardmäßig alle Anfragen aus diesem Verzeichnis gestellt werden, aber Sie können auch symbolische Links und / oder Aliase verwenden, um auch auf andere Standorte zu verweisen.

Es sei denn Alias Richtlinie (die es ermöglicht, Dokumente im lokalen Dateisystem statt im Verzeichnis zu speichern Dokument Root), der Server findet den Pfad von der angeforderten URL an das Dokument -Stamm an, um den Pfad zum Dokument zu schaffen.

Zum Beispiel angegeben die folgenden Dokument Root:

Apache DocumentRoot

Wenn der Webbrowser auf [zeigt [Server IP oder Hostname]/lfce/tecmint.html, Der Server wird geöffnet /var/www/html/lfce/tecmint.html (Angenommen, eine solche Datei existiert) und speichern Sie das Ereignis in seinem Zugriffsprotokoll mit a 200 (OK) Antwort.

Das Zugriffsprotokoll ist normalerweise im Inneren gefunden /var/log unter einem repräsentativen Namen, wie z Zugang.Protokoll oder Access_log. Möglicherweise finden Sie dieses Protokoll (und das Fehlerprotokoll auch) in einem Unterverzeichnis (zum Beispiel, /var/log/httpd in CentOs). Andernfalls wird das fehlgeschlagene Ereignis weiterhin am Access -Protokoll, jedoch mit a 404 (Nicht gefunden) Antwort.

Apache -Zugriffsprotokoll

Darüber hinaus werden die fehlgeschlagenen Ereignisse in der aufgezeichnet Fehlerprotokoll:

Apache -Fehlerprotokoll

Das Format der Zugriff auf Protokoll kann nach Ihren Bedürfnissen mit der angepasst werden Logformat Anweisung in der Hauptkonfigurationsdatei, während Sie dasselbe mit dem nicht tun können Fehlerprotokoll.

Das Standardformat der Zugriff auf Protokoll ist wie folgt:

Logformat " %H %l %U %t \" %R \ "" %> S %b"" [Spitzname] 

Wobei jeder der Buchstaben eines prozentualen Zeichens angibt, dass der Server eine bestimmte Information protokolliert:

Saite Beschreibung
 %H  Remote -Hostname oder IP -Adresse
 %l  Fernprotokollname
 %u  Remote -Benutzer Wenn die Anforderung authentifiziert ist
 %T  Datum und Uhrzeit, als die Anfrage einging
 %R  Erste Anfragezeile an den Server
 %> s  Endstatus der Anfrage
 %B  Größe der Antwort [Bytes]

Und Spitzname ist ein optionaler Alias, mit dem andere Protokolle angepasst werden können, ohne die gesamte Konfigurationszeichenfolge eingeben zu müssen.

Sie können sich auf die beziehen Logformat Richtlinie [Abschnitt ""benutzerdefinierte Protokollformate] in den Apache -Dokumenten für weitere Optionen.

Beide Protokolldateien (Zugang Und Fehler) stellen eine großartige Ressource dar, um schnell auf einen Blick zu analysieren, was auf dem Apache -Server passiert. Unnötig zu erwähnen, dass sie das erste Tool sind, das ein Systemadministrator verwendet, um Probleme zu beheben.

Schließlich ist eine weitere wichtige Richtlinie Hören, Dies fordert den Server an, eingehende Anforderungen für die angegebene Port- oder Adress-/Port -Kombination zu akzeptieren:

Wenn nur eine Portnummer definiert ist * wird verwendet, um ""alle Netzwerkschnittstellen"" anzuzeigen).

Wenn sowohl die IP -Adresse als auch der Port angegeben sind, hört der Apache auf die Kombination der angegebenen Port- und Netzwerkschnittstelle an.

Bitte beachten Sie (wie Sie in den folgenden Beispielen sehen werden), dass mehrere Listenanweisungen gleichzeitig verwendet werden können, um mehrere Adressen und Ports anzugeben, um das Hören zuzuhören. Diese Option weist den Server an, auf Anfragen aus einer der aufgeführten Adressen und Ports zu antworten.

Einrichten von Namensbasis virtueller Hosts

Das Konzept des virtuellen Hosts definiert eine einzelne Website (oder eine Domäne), die von derselben physischen Maschine bedient wird. Tatsächlich können mehrere Websites / Domänen von einer einzigen serviert werden “real”Server als virtueller Host. Dieser Prozess ist für den Endbenutzer transparent, dem anscheinend die verschiedenen Websites von verschiedenen Webservern bedient werden.

Das name-basierte virtuelle Hosting ermöglicht es dem Server, sich auf den Client zu verlassen, um den Hostnamen als Teil der HTTP-Header zu melden. Mit dieser Technik können viele verschiedene Hosts dieselbe IP -Adresse teilen.

Jeder virtuelle Host ist in einem Verzeichnis innerhalb konfiguriert Dokument Root. Für unseren Fall werden wir die folgenden Dummy -Domänen für das Test -Setup verwenden, die jeweils im entsprechenden Verzeichnis liegen:

  1. Ilovelinux.com - /var/www/html/ilovelinux.com/public_html
  2. Linuxrocks.Org - /var/www/html/linuxrocks.org/public_html

Damit Seiten korrekt angezeigt werden, werden wir Chmod jedes VirtualHost -Verzeichnis zu 755:

# Chmod -r 755/var/www/html/ilovelinux.com/public_html # chmod -r 755/var/www/html/linuxrocks.org/public_html 

Erstellen Sie als nächstes ein Beispiel Index.html Datei in jedem public_html Verzeichnis:

  www.Ilovelinux.com   

Dies ist die Hauptseite von www.Ilovelinux.com

Endlich in Centos Und OpenSuse Fügen Sie den folgenden Abschnitt unten hinzu /etc/httpd/conf/httpd.Conf oder /etc/apache2/httpd.Conf, jeweils oder modifizieren Sie es einfach, wenn es bereits da ist.

 ServerAdmin [E -Mail geschützt] DocumentRoot/var/www/html/ilovelinux.com/public_html sservername www.Ilovelinux.com Serveralias www.Ilovelinux.com ilovelinux.com errorlog/var/www/html/ilovelinux.com/fehler.log logformat "" %v %l %u %t \"" %r \ "" %> %b"" myvHost CustomLog/var/www/html/ilovelinux.com/Zugang.Log MyVHost Serveradmin [E -Mail -Protected] DocumentRoot/var/www/html/linuxrocks.org/public_html sservername www.Linuxrocks.org Serveralias www.Linuxrocks.Org Linuxrocks.org Fehlerlog/var/www/html/linuxrocks.org/fehler.log logformat "" %v %l %u %t \"" %r \ "" %> %b"" myvHost CustomLog/var/www/html/linuxrocks.Org/Zugriff.Log Myvhost  

Bitte beachten Sie, dass Sie auch jede virtuelle Host -Definition in separaten Dateien in den hinzufügen können /etc/httpd/conf.D Verzeichnis. Wenn Sie dies tun, muss jede Konfigurationsdatei wie folgt benannt werden:

/etc/httpd/conf.D/Ilovelinux.com.conf/etc/httpd/conf.D/Linuxrocks.Org.Conf 

Mit anderen Worten müssen Sie hinzufügen .Conf auf die Website oder den Domainnamen.

In Ubuntu, Jede einzelne Konfigurationsdatei wird benannt /etc/apache2/sites-verfügbare/[Site-Name].Conf. Jede Site wird dann mit dem aktiviert oder deaktiviert a2ensit oder a2dissit Befehle wie folgt.

# a2ensit/etc/apache2/seites-verfügbare/ilovelinux.com.conf # a2dissit/etc/apache2/sites-verfügbare/ilovelinux.com.conf # a2ensit/etc/apache2/sites-verfügbare/linuxrocks.Org.conf # a2dissit/etc/apache2/sites-verfügbare/linuxrocks.Org.Conf 

Der a2ensit Und a2dissit Befehle erstellen Links zur virtuellen Host -Konfigurationsdatei und platzieren (oder entfernen) in der /etc/apache2/sites-fähig Verzeichnis.

Um beide Websites aus einem anderen Linux -Box zu stöbern, müssen Sie die folgenden Zeilen in die hinzufügen /etc/hosts Datei in dieser Maschine, um Anforderungen an diese Domänen zu einer bestimmten IP -Adresse umzuleiten.

[IP -Adresse Ihres Webservers] www.Ilovelinux.com [IP -Adresse Ihres Webservers] www.Linuxrocks.Org 

Als Sicherheitsmaßnahme, Selinux nicht erlauben Apache Schreiben Sie Protokolle in ein anderes Verzeichnis als den Standard /var/log/httpd.

Sie können Selinux entweder deaktivieren oder den richtigen Sicherheitskontext festlegen:

# CHCON SYSTEM_U: Object_R: httpd_log_t: s0/var/www/html/xxxxxx/fehler.Protokoll 

Wo xxxxxx ist das Verzeichnis im Inneren /var/www/html wo Sie Ihre virtuellen Hosts definiert haben.

Nach dem Neustart von Apache sollten Sie die folgende Seite unter den oben genannten Adressen sehen:

APache VirtualHosts überprüfen

Installieren und Konfigurieren von SSL mit Apache

Schließlich werden wir a erstellen und installieren selbst signiert Zertifikat mit Apache zu verwenden. Diese Art von Setup ist in kleinen Umgebungen, wie z. B. einem privaten LAN, akzeptabel.

Wenn Ihr Server jedoch über das Internet Inhalte der Außenwelt ausgesetzt ist, sollten Sie ein von einer Drittanbieter unterschriebenes Zertifikat installieren, um seine Authentizität zu bestätigen. In jedem Fall können Sie mit einem Zertifikat die Informationen verschlüsseln, die über, von oder in Ihrer Website übertragen werden.

In Centos Und OpenSuse, Sie müssen die installieren mod_ssl Paket.

# yum update && yum install mod_ssl [auf Centos] # Zypper Refresh && Zypper install mod_ssl [on openSuse] 

Wohingegen in Ubuntu Sie müssen das SSL -Modul für Apache aktivieren.

# A2enmod SSL 

Die folgenden Schritte werden mit a erklärt Centos Testserver, aber Ihr Setup sollte in den anderen Verteilungen fast identisch sein (wenn Sie auf Probleme stoßen, zögern Sie nicht, Ihre Fragen mit dem Kommentarformular zu lassen).

Schritt 1 [Optional]: Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern.

# mkdir/etc/httpd/ssl-certs 

Schritt 2: Generieren Sie Ihr selbst signiertes Zertifikat und den Schlüssel, der es schützt.

# OpenSSL REQ -X509 -nodes -days 365 -Newkey RSA: 2048 -keyout/etc/httpd/ssl -certs/apache.Key -out/etc/httpd/ssl -certs/apache.crt 

Eine kurze Erläuterung der oben aufgeführten Optionen:

  1. Req -X509 Gibt an, dass wir ein X509 -Zertifikat erstellen.
  2. -Knoten (Nein Des) bedeutet ""Verschlüsseln Sie den Schlüssel nicht"".
  3. -Tage 365 ist die Anzahl der Tage, für die das Zertifikat gültig ist.
  4. -Newkey RSA: 2048 erstellt einen 2048-Bit-RSA-Schlüssel.
  5. -Schlüsselout/etc/httpd/ssl-certs/apache.Taste ist der absolute Weg des RSA -Schlüssels.
  6. -out/etc/httpd/ssl-certs/apache.crt ist der absolute Weg des Zertifikats.
Erstellen Sie Apache SSL -Zertifikat

Schritt 3: Öffnen Sie Ihre ausgewählte virtuelle Host -Konfigurationsdatei (oder den entsprechenden Abschnitt in /etc/httpd/conf/httpd.Conf wie bereits erläutert) und fügen Sie die folgenden Zeilen zu einer virtuellen Host -Deklaration hinzu, die den Port anhört 443.

Sslengine auf SSLCertificateFile/etc/httpd/ssl-certs/apache.crt sslcertificateKeyFile/etc/httpd/ssl-certs/apache.Taste 

Bitte beachten Sie, dass Sie hinzufügen müssen.

NAMEVIRTUALHOST *: 443 

oben direkt unten

NAMEVIRTUALHOST *: 80 

Beide Richtlinien weisen Apache an, Ports anzuhören 443 Und 80 von allen Netzwerkoberflächen.

Das folgende Beispiel wird von entnommen /etc/httpd/conf/httpd.Conf:

Apache VirtualHost Richtlinien

Starten Sie dann Apache neu,

# Service Apache2 Neustart [sysvinit und upstart -basierte Systeme] # SystemCTL Neustart HTTPD.Service [systemd-basierte Systeme] 

Und richten Sie Ihren Browser auf https: // www.Ilovelinux.com. Sie erhalten den folgenden Bildschirm.

Überprüfen Sie das Apache SSL -Zertifikat

Gehen Sie voran und klicken Sie auf “ich verstehe die Risiken"" Und ""Ausnahme hinzufügen”.

Apache Ceritficate Warnung

Schließlich überprüfen Sie “Speichern Sie diese Ausnahme dauerhaft""Und klicken Sie auf""Bestätigen Sie die Sicherheitsausnahme”.

SSL Ceriticate hinzufügen

Und Sie werden mithilfe Ihrer Startseite umgeleitet https.

Apache HTTPS aktiviert

Zusammenfassung

In diesem Beitrag haben wir gezeigt, wie man konfiguriert wird Apache Und Name basiert virtuelles Hosting mit SSL Datenübertragung sichern. Wenn Sie aus irgendeinem Grund Probleme kennen. Wir werden Ihnen bei der Durchführung einer erfolgreichen Einrichtung mehr als gerne helfen.

Lesen Sie auch

  1. Apache IP -basierte und name -basierte virtuelle Hosting
  2. Erstellen von apache virtuellen Hosts mit Aktivieren/Deaktivieren von Vhosts -Optionen
  3. Überwachen Sie ""Apache Web Server"" mit dem Tool ""Apache GUI""
Werden Sie ein Linux -zertifizierter Ingenieur"