
Ich habe Apache in RHEL 6 installiert. Alles funktioniert einwandfrei. Welche Änderungen und Konfigurationen müssen vorgenommen werden, um https://localhost:443/.
Wenn ich "Listen 80" auf 443 ändere, wird ein SSL-Verbindungsfehler ausgegeben
„Fehler 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL-Protokollfehler.“
Antwort1
Wenn Sie verwenden apache2
, müssen Sie Folgendes tun:
Schritt 1:Verwenden Sie OpenSSL, um die Schlüssel zu erstellen, die zum Sichern Ihrer Site verwendet werden. Diese Schlüssel werden zum Verschlüsseln und Entschlüsseln des Datenverkehrs zu Ihrer sicheren Site verwendet.
$ openssl genrsa -out mydomain.key 1024
Dieser Befehl erstellt einen 1024-Bit-Privatschlüssel und legt ihn in der Datei mydomain.key ab.
Schritt 2:Generieren Sie Ihr eigenes Zertifikat.
$ openssl req -new -key mydomain.key -x509 -out mydomain.crt
Schritt 3:Bewahren Sie den privaten Schlüssel im Verzeichnis /etc/apache2/ssl.key/
und das Zertifikat im Verzeichnis auf /etc/apache2/ssl.crt/
.
Notiz:Das ssl.key
Verzeichnis darf nur für Root lesbar sein.
Schritt 4:Jetzt müssen Sie httpd.conf
die Datei in bearbeiten /etc/apache2
.
Nun sollte diese Datei etwa folgenden Inhalt enthalten:
NameVirtualHost *:80
NameVirtualHost *:443
Listen 443
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain
ServerName www.mydomain.com
ServerAlias mydomain.com
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain-secure
ServerName mail.mydomain.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/mydomain.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/mydomain.key
</VirtualHost>
<Directory /srv/www/htdocs/mydomain-secure>
SSLRequireSSL
</Directory>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain
ServerName mail.mydomain.com
RedirectMatch permanent (/.*) https://mail.mydomain.com$1
</VirtualHost>
Antwort2
Listen 80
Ändern Sie nicht 443
in /etc/httpd/conf/httpd.conf
. SSL ist in konfiguriert /etc/httpd/conf.d/ssl.conf
. Unter RHEL 6 ist SSL aktiviert und lauscht standardmäßig mit einem selbstsignierten Zertifikat.
Sie können die Standardsite mit SSL erreichen, indem Sie einfach zu navigieren https://localhost
(Sie müssen den Port nicht an das Ende der URL anhängen).
Wenn Sie alle HTTP-Anfragen an HTTPS weiterleiten möchten (was Sie meiner Meinung nach erreichen möchten), können Sie entweder eine permanente Weiterleitung hinzufügen oder das Apache-Modul verwenden mod_rewrite
.
Der einfachste und sicherste Weg ist die Einrichtung einer permanenten Umleitung. Aktivieren Sie benannte virtuelle Hosts und fügen Sie Redirect
dem VirtualHost in eine Direktive hinzu /etc/httpd/conf/httpd.conf
.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
Redirect permanent / https://localhost
</VirtualHost>
Mit mod_rewrite
erstellen Sie auch einen benannten virtuellen Host. Dies ist nicht die empfohlene Methode, funktioniert aber.
NameVirtualHost *:80
<VirtualHost *:80>
# Enable the Rewrite engine
RewriteEngine On
# Make sure the connection is not already HTTPS
RewriteCond %{HTTPS} !=on
# This rewrites the URL and forwards to https
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
Wenn Sie SSL deaktivieren möchten, kommentieren Sie diese Zeilen aus /etc/httpd/conf.d/ssl.conf
und starten Sie Apache neu.
LoadModule ssl_module modules/mod_ssl.so
Listen 443