So richten Sie einen mit SSL gesicherten Webserver mit CentOS ein - Wie Man

So richten Sie einen mit SSL gesicherten Webserver mit CentOS ein

In diesem Handbuch wird erläutert, wie Sie eine Website über https einrichten. Das Lernprogramm verwendet einen selbstsignierten Schlüssel, so dass es für persönliche Websites oder Testzwecke gut geeignet ist. Dies wird bereitgestellt, so wie es auf eigene Gefahr geschieht, und Backups erstellen!

4 Schritte insgesamt

Schritt 1: Holen Sie sich die benötigte Software

Für einen SSL-verschlüsselten Webserver benötigen Sie einige Dinge. Abhängig von Ihrer Installation verfügen Sie möglicherweise über OpenSSL und mod_ssl, die Schnittstelle von Apache zu OpenSSL. Benutze yum, um sie zu bekommen, wenn du sie brauchst.

yum install mod_ssl openssl installieren

Yum sagt entweder, dass sie installiert sind, oder installiert sie für Sie.

Schritt 2: Erstellen Sie ein selbstsigniertes Zertifikat

Mit OpenSSL erstellen wir ein selbstsigniertes Zertifikat. Wenn Sie dies auf einem Produktionsserver verwenden, möchten Sie wahrscheinlich einen Schlüssel von der vertrauenswürdigen Zertifizierungsstelle, aber wenn Sie dies nur auf einer persönlichen Website oder zu Testzwecken verwenden, reicht ein selbstsigniertes Zertifikat aus. Um den Schlüssel zu erstellen, müssen Sie root sein, damit Sie entweder su to root oder sudo vor den Befehlen verwenden können

# Privaten Schlüssel erzeugen
openssl genrsa -out ca.key 1024

# Generiere CSR
openssl req -new -key ca.key -out ca.csr

# Selbstsignierten Schlüssel erzeugen
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

# Kopieren Sie die Dateien an die richtigen Speicherorte
cp ca.crt / etc / pki / tls / certs
cp ca.key /etc/pki/tls/private/ca.key
cp ca.csr /etc/pki/tls/private/ca.csr


WARNUNG: Vergewissern Sie sich, dass Sie die Dateien kopieren und nicht verschieben, wenn Sie SELinux verwenden. Apache wird sich sonst über fehlende Zertifikatdateien beschweren, da er sie nicht lesen kann, da die Zertifikatdateien nicht den richtigen SELinux-Kontext haben.

Wenn Sie die Dateien verschoben und nicht kopiert haben, können Sie mit dem folgenden Befehl die SELinux-Kontexte für diese Dateien korrigieren, da die korrekten Kontextdefinitionen für / etc / pki / * der mitgelieferten SELinux-Richtlinie beiliegen.

restorecon -RvF / etc / pki

Dann müssen wir die Apache-SSL-Konfigurationsdatei aktualisieren

vi + / SSLCertificateFile /etc/httpd/conf.d/ssl.conf

Ändern Sie die Pfade so, dass sie dem Speicherort der Schlüsseldatei entsprechen. Wenn Sie die Methode oben verwendet haben, wird es sein

SSLCertificateFile /etc/pki/tls/certs/ca.crt

Legen Sie dann den richtigen Pfad für die Zertifikatschlüsseldatei ein paar Zeilen weiter unten fest. Wenn Sie die Anweisungen oben befolgt haben, ist dies:

SSLCertificateKeyFile /etc/pki/tls/private/ca.key

Beenden und speichern Sie die Datei und starten Sie Apache neu

/etc/init.d/httpd neu starten

Alles in Ordnung, sollten Sie jetzt über https eine Verbindung zu Ihrem Server herstellen und eine Standard-Centos-Seite sehen. Da das Zertifikat selbstsignierte Browser ist, werden Sie im Allgemeinen gefragt, ob Sie das Zertifikat akzeptieren möchten. Firefox 3 lässt Sie überhaupt keine Verbindung zu, aber Sie können dies überschreiben.

Schritt 3: Einrichten der virtuellen Hosts

So wie Sie VirtualHosts für HTTP für Port 80 und für HTTPS für Port 443 festlegen. Ein typischer VirtualHost für eine Site an Port 80 sieht folgendermaßen aus


AllowOverride All

DocumentRoot /var/www/vhosts/yoursite.com/httpdocs
ServerName yoursite.com

Um eine Schwestersite an Port 443 hinzuzufügen, müssen Sie am Anfang Ihrer Datei Folgendes hinzufügen

NameVirtualHost *: 443

und dann eine VirtualHost-Platte, etwa so:

SSLEngine an
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

AllowOverride All

DocumentRoot /var/www/vhosts/yoursite.com/httpsdocs
ServerName yoursite.com

Starten Sie Apache erneut mit

/etc/init.d/httpd neu starten

Schritt 4: Konfigurieren der Firewall

Sie sollten jetzt über eine Site verfügen, die mit einem selbstsignierten Zertifikat über https arbeitet. Wenn Sie keine Verbindung herstellen können, müssen Sie möglicherweise den Port Ihrer Firewall öffnen. Ändern Sie dazu Ihre iptables-Regeln:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/ sbin / service iptables speichern
iptables -L -v