Alle meine Apache-Konfigurationsschritte (von einer Neuinstallation):

Alle meine Apache-Konfigurationsschritte (von einer Neuinstallation):

Ich versuche, meine Website so zu konfigurieren, dass der gesamte Datenverkehr auf die www-Subdomäne umgeleitet wird und alle HTTP-Anfragen auf HTTPS-Anfragen umgeleitet werden. Ich weiß, dass es kein Problem mit meinen DNS-Einträgen ist (die einen A-Eintrag für www und Cloud enthalten), da meine Konfiguration bis vor etwa einer Woche einwandfrei funktionierte, als ich alles neu installierte. Das aufgetretene Problem ist, dass es sich sehr merkwürdig verhält.

(Ich habe meine Domäne durch „example.com“ ersetzt, um den Beitrag zu bereinigen.)

Was nicht funktioniert:

http://example.com        - redirects to https://www.example.com,
                            but yields SSL_PROTOCOL_ERROR
http://cloud.example.com  - redirects to https://www.example.com/myfiles/,
                            but yields SSL_PROTOCOL_ERROR
https://example.com       - no redirect to www, and yields SSL_PROTOCOL_ERROR
https://www.example.com   - yields SSL_PROTOCOL_ERROR
https://cloud.example.com - no redirect to www, and yields SSL_PROTOCOL_ERROR

Was funktioniert:

http://www.example.com - works like a dream

Alle meine Apache-Konfigurationsschritte (von einer Neuinstallation):

sudo echo -e "\\ndeb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list

sudo apt-get update && sudo apt-get -y upgrade

# Because you'll want the latest certbot...
sudo apt-get -y install python-certbot-apache -t jessie-backports

sudo apt-get -y install apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql php5-cli

sudo a2enmod rewrite

Fügen Sie (als Root) Folgendes am Ende von /etc/apache2/apache2.conf ein

ServerName example.com

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>
<Directory /var/www/(.*)>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Directory>

Erstellen der virtuellen Hosts und Zertifikate

sudo tee /etc/apache2/sites-available/www.conf << "EOP"
<VirtualHost *:80>
  ServerName www.example.com
  Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
  DocumentRoot /var/www/html/
  ServerName www.example.com
</VirtualHost>
EOP

sudo a2ensite www

sudo service apache2 restart

sudo certbot --apache --domain www.example.com
#I apply this to /etc/apache2/sites/enabled/default-ssl.conf

sudo mkdir -p /var/www/html/myfiles/

sudo tee /etc/apache2/sites-available/cloud.conf << "EOP"
<VirtualHost *:80>
  ServerName cloud.example.com
  Redirect / https://www.example.com/myfiles/
</VirtualHost>
<VirtualHost *:443>
  ServerName cloud.example.com
  Redirect / https://www.example.com/myfiles/
</VirtualHost>
EOP

sudo a2ensite cloud

sudo service apache2 restart

sudo apache2ctl configtest #which reports everything's ok

Weitere Informationen zum Server:

Der Server ist eine Neuinstallation von Debian 8.6 (amd64) und die Apache-Versionsnummer ist 2.4, daher ist die Stabilität der Software nicht das Problem.

Mein SSL-Problem

A cat /var/log/apache2/error.logwirft mir folgendes vor:

[ssl:warn] [pid 11737] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name

Antwort1

Ihr Zertifikat MUSS mit dem Domänennamen übereinstimmen.

sudo certbot --apache --domain www.example.com --domain cloud.example.com --domain example.com

Sie können bis zu 100 SAN (Subject Alternative Names) pro LE-Zertifikat haben.

Sie können auch mehrere Zertifikate mit derselben IP mit SNI verwenden (was Ihre Version von OpenSSL unterstützen sollte).

Sie müssen auch Ihre SSL-Optionen und Dateien auflisten, bevor die</VirtualHost>

https://www.digitalocean.com/community/tutorials/wie-sichert-man-apache-mit-let-s-encrypt-auf-ubuntu-14-04

verwandte Informationen