Installation

Installation

Ich versuche, SSL auf meinem Apache2-Webserver einzurichten, aber es scheint, dass es überhaupt nicht funktioniert.

Ich habe ein Tutorial zum Erstellen von Zertifikatsdateien mit OpenSSL befolgt und diese /etc/apache2/sites-available/default-ssl.confordnungsgemäß konfiguriert.

Jedes Mal, wenn ich versuche, meine Website mit https zu öffnen, verweigert mein Browser aus Sicherheitsgründen die Verbindung. Es heißt, ich hätte meine Website nicht richtig konfiguriert.

Ich /var/log/apache2/error.logerhalte Warnungen, dass mein Serverzertifikat keine ID enthält, die mit dem Servernamen übereinstimmt.

[Mon Apr 10 11:03:24.041813 2017] [mpm_prefork:notice] [pid 1222] AH00169: caught SIGTERM, shutting down
[Mon Apr 10 11:03:30.566578 2017] [ssl:warn] [pid 661] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.579088 2017] [ssl:warn] [pid 1194] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.592958 2017] [mpm_prefork:notice] [pid 1194] AH00163: Apache/2.4.25 (Raspbian) OpenSSL/1.0.2k configured -- resuming normal operations
[Mon Apr 10 11:03:31.593136 2017] [core:notice] [pid 1194] AH00094: Command line: '/usr/sbin/apache2'

Haben Sie Ideen, wie man das Problem lösen kann? Vielen Dank dafür!

Antwort1

Okay, mir ist aufgefallen, dass dieser Beitrag in letzter Zeit ziemlich oft aufgerufen wurde. Es scheint also, dass viele Leute dasselbe Problem haben wie ich. Wenn ja, könnte Ihnen das hier helfen.

Ich habe ein einfaches Schritt-für-Schritt-Tutorial befolgt, um eine SSL-Zertifizierung für meinen Webserver zu erstellen. Wie bei so vielen anderen Tutorials war das Ergebnis des Tutorials, das ich befolgt habe, ein selbstsigniertes Zertifikat mit OpenSSL. Jaselbst signiert, das war das Problem. Der Browser konnte dem Server aufgrund seines von ihm selbst signierten Zertifikats nicht vertrauen. Also, ich würde beides nicht tun...

Ein Zertifikat muss von einer externen vertrauenswürdigen Zertifizierungsstelle (CA) signiert sein. So stieß ich aufLass uns verschlüsselndas die ganze Arbeit für Sie erledigt, noch einfacher einzurichten ist und das Beste ist: es ist absolut kostenlos.

Installation

1) Löschen Sie Ihre alten SSL-Zertifikatdateien, die Sie mit OpenSSL erstellt haben

2) Öffnen Sie Backports, um den Certbot-Client unter Debian zu erhalten. Sie sollten wissen, dass dies eine Lücke für unfertige Software öffnet! Installieren Sie die Pakete nur, wenn Sie wissen, was Sie tun.

echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list

3) Aktualisieren Sie Ihr Linux-System

sudo apt-get update

4) Installieren Sie certbot

sudo apt-get install python-certbot-apache -t jessie-backports

5) Apache-Servername und Serveralias einrichten

sudo nano /etc/apache2/sites-available/000-default.conf

6) Bearbeiten Sie die Apache-Konfigurationsdatei

<VirtualHost *:80>
    . . .
    ServerName example.com
    ServerAlias www.example.com
    . . .
</VirtualHost>

7) Überprüfen Sie die korrekte Syntax

sudo apache2ctl configtest

8) Wenn die Konfigurationsdatei in Ordnung ist, starten Sie den Apache-Server neu

sudo systemctl restart apache2

9) Richten Sie mit Certbot ein Zertifikat ein und folgen Sie den Anweisungen auf dem Bildschirm.

sudo certbot --apache

Erneuerung

Alle Zertifikate von Let's Encrypt sind 3 Monate gültig. Um sie zu erneuern, können Sie manuell ausführen

sudo certbot renew

Oder automatisieren Sie diesen Dienst als Cron-Job

sudo crontab -e

und geben Sie die folgende Zeile ein, um jeden Montag um 2:30 Uhr eine Verlängerung aufzurufen.

. . .
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log

Eine ausführlichere Anleitung finden Sie hier:https://www.digitalocean.com/community/tutorials/wie-sichert-man-apache-mit-let-s-encrypt-auf-debian-8

Antwort2

In meinem Fall habe ich dies gelöst, indem ich in meiner Apache-SSL-Konfigurationsdatei für jede betroffene Domäne Folgendes ersetzt habe:

ServerName mydomain.com
ServerAlias www.mydomain.com

von :

ServerName www.mydomain.com
ServerAlias mydomain.com

Weil mein Zertifikat für "www.mydomain.com" und nicht für "mydomain.com" ist

vollständige Apache-Datei:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin [email protected]
        ServerName www.mydomain.com
        ServerAlias mydomain.com
    DocumentRoot /home/mydomain.com/public_html
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|ico|png)$ \ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ \no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    <Directory />
        Options +FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/mydomain.com/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride All
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>


ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn
SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Antwort3

Wenn keine anderen SSL-Fehler angezeigt werden und Sie versucht haben, „LogLevel debug“ in der Datei httpd.conf festzulegen, kann diese Fehlermeldung auch darauf hinweisen, dass „Listen 443“ in der Datei httpd.conf fehlt.

Antwort4

Dieses Problem trat bei mir vor Kurzem auf, als mein selbstsigniertes Zertifikat abgelaufen war. Ich habe gegoogelt und einfach den Befehl zum Erstellen eines neuen Zertifikats von einer Website kopiert.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/apache2/ssl/apache.crt

In meiner Apache-Konfigurationsdatei: /etc/apache2/sites-available/default-ssl.conf. Die Zertifikatsdatei und die Schlüsseldatei verweisen auf den folgenden Dateinamen.

    SSLCertificateFile  /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Daher ließ sich der hier in meinem Fall aufgetretene Fehler leichter beheben, indem ich beim Erstellen des SSL-Zertifikats einfach den richtigen Speicherort der Zertifikatsschlüsseldatei angab.

Hier ist also der Befehl, den ich hätte verwenden und richtig eingeben sollen.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

verwandte Informationen