Hallo,
ich habe einen virtuellen Server bei einem Hoster von Grund auf mit Ubuntu Server 16.04 aufsetzen lassen. Auf dem möchte ich owncloud installieren.
Ich scheitere aber schon im Vorfeld am https-Protokoll. Hier geht es also nicht um owncloud, sondern um https mit apache.
Firefox weigert sich, meine Site zu laden: SSL_ERROR_RX_RECORD_TOO_LONG
Nach der Fehlermeldung habe ich gesucht und auch hier im Wiki Spezifisches dazu gefunden. Aber alle (hoffentlich korrekt) befolgten Lösungshinweise hatten keinerlei Erfolg.
Meine Aufzeichnungen auf dem Weg dorthin kopiere ich ans Ende des Postings. Früher gab es dafür mal einen externen Service, um hier keine Logs zu posten. Ich finde jetzt hier dazu keinen Hinweis. Darum poste ich es in meinen Beitrag.
Vielleicht erkennt jemand mein Problem und hat eine Lösung.
Gruß
Delcour
Meine Aufzeichnungen:
Anleitung: http://www.pcwelt.de/ratgeber/Owncloud-unter-Linux-betreiben-9889761.html
In der Anleitung gibt sudo die Befehle ein. Auf meinem vserver bin ich als root eingeloggt, darum ohne sudo.
apt-get install mysql-server mysql-client
Ja zum Vorschlag der zusätzlichen Pakete.
administrativer MySQL root Benutzer Passwort: *** root@h00000001:~# apt-get install apache2 php5 php5-gd php-xml-parser php5-intl Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Paket php5 ist nicht verfügbar, wird aber von einem anderen Paket referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst wurde oder nur aus einer anderen Quelle verfügbar ist. Paket php5-gd ist nicht verfügbar, wird aber von einem anderen Paket referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst wurde oder nur aus einer anderen Quelle verfügbar ist. E: Für Paket »php5« existiert kein Installationskandidat. E: Für Paket »php5-gd« existiert kein Installationskandidat. E: Paket php5-intl kann nicht gefunden werden.
Mit apt-cache search festgestellt, dass ich die 5 weglassen muss, um Treffer zu erhalten.
apt-get install apache2 php php-gd php-xml-parser php-intl root@h00000001:~# apt-get install apache2 php php-gd php-xml-parser php-intl Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig The following additional packages will be installed: apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.1-0 libtiff5 libvpx3 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4 libxslt1.1 php-common php-pear php-xml php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-gd php7.0-intl php7.0-json php7.0-opcache php7.0-readline php7.0-xml Vorgeschlagene Pakete: apache2-doc apache2-suexec-pristine | apache2-suexec-custom ufw libgd-tools Die folgenden NEUEN Pakete werden installiert: apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.1-0 libtiff5 libvpx3 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4 libxslt1.1 php php-common php-gd php-intl php-pear php-xml php-xml-parser php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-gd php7.0-intl php7.0-json php7.0-opcache php7.0-readline php7.0-xml 0 aktualisiert, 39 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 7.706 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 31,4 MB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n]
Ja.
Hoffentlich ist das zur Anleitung kompatibel.
Aus dem Befehl der Anleitung
apt-get install php5-sqlite php5-mysql smbclient curl lib curl3 php5-curl
mache ich
apt-get install php-sqlite php-mysql smbclient curl lib curl3 php-curl
Erst mal mit -s
apt-get install php-sqlite php-mysql smbclient curl lib curl3 php-curl -s root@h00000001:~# apt-get install php-sqlite php-mysql smbclient curl lib curl3 php-curl -s Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Paket php-sqlite ist nicht verfügbar, wird aber von einem anderen Paket referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst wurde oder nur aus einer anderen Quelle verfügbar ist. E: Für Paket »php-sqlite« existiert kein Installationskandidat. E: Paket lib kann nicht gefunden werden. E: Paket curl3 kann nicht gefunden werden.
Mit apt-cache search gefundene Pakete:
php7.0-sqlite3 php-sqlite3 libcurl3
Mit lib und curl3 ist die Anleitung wohl fehlerhaft.
Also rate ich weiter, was ich installieren muss:
apt-get install php-sqlite3 php-mysql smbclient curl libcurl3 php-curl root@h00000001:~# apt-get install php-sqlite3 php-mysql smbclient curl libcurl3 php-curl Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig The following additional packages will be installed: libarchive13 libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libcurl3-gnutls libldb1 librtmp1 libsmbclient libtalloc2 libtdb1 libtevent0 libwbclient0 php7.0-curl php7.0-mysql php7.0-sqlite3 python-crypto python-ldb python-samba python-talloc python-tdb samba-common samba-common-bin samba-libs Vorgeschlagene Pakete: lrzip cups-common python-crypto-dbg python-crypto-doc heimdal-clients cifs-utils Die folgenden NEUEN Pakete werden installiert: curl libarchive13 libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libcurl3 libcurl3-gnutls libldb1 librtmp1 libsmbclient libtalloc2 libtdb1 libtevent0 libwbclient0 php-curl php-mysql php-sqlite3 php7.0-curl php7.0-mysql php7.0-sqlite3 python-crypto python-ldb python-samba python-talloc python-tdb samba-common samba-common-bin samba-libs smbclient 0 aktualisiert, 30 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 8.982 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 40,5 MB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n]
Ja.
Zertifikat anlegen.
root@h00000001:~# a2enmod ssl Considering dependency setenvif for ssl: Module setenvif already enabled Considering dependency mime for ssl: Module mime already enabled Considering dependency socache_shmcb for ssl: Enabling module socache_shmcb. Enabling module ssl. See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates. To activate the new configuration, you need to run: service apache2 restart
OK, mach ich:
service apache2 restart
Warum ich erst jetzt das Verzeichnis zur Ablage der Zertifikate anlegen soll, weiß ich nicht, aber ich tue es:
mkdir -p /etc/apache2/ssl
Den Anleitungsbefehl habe ich garnicht erst probiert:
openssl req -newkey rsa:4096 -sha512 -x509 -days 365 -nodes -keyout /etc/apache2/ssl/own cloud.key -out /etc/apache2/ssl/owncloud.crt
Sondern den:
openssl req -newkey rsa:4096 -sha512 -x509 -days 365 -nodes -keyout /etc/apache2/ssl/owncloud.key -out /etc/apache2/ssl/owncloud.crt root@h00000001:~# openssl req -newkey rsa:4096 -sha512 -x509 -days 365 -nodes -keyout /etc/apache2/ssl/owncloud.key -out /etc/apache2/ssl/owncloud.crt Generating a 4096 bit RSA private key ..............................................................................................................................................................................++ ...................................................................................................++ writing new private key to '/etc/apache2/ssl/owncloud.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]:Berlin Locality Name (eg, city) []:Berlin Organization Name (eg, company) [Internet Widgits Pty Ltd]:irgendwas Organizational Unit Name (eg, section) []:Owncloud Common Name (e.g. server FQDN or YOUR name) []:*.meine-de-Adresse.de Email Address []:irgendwas@gmail.com
Bei Common Name habe ich exakte Angaben gemacht. Beispiel: Meine Domain sei "ubuntu-fan.de", dann habe ich dort *.ubuntu-fan.de eingetragen.
root@h00000001:~# apt-get install nano Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Vorgeschlagene Pakete: spell Die folgenden NEUEN Pakete werden installiert: nano 0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 191 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 700 kB Plattenplatz zusätzlich benutzt. Holen:1 ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial-updates/main amd64 nano amd64 2.5.3-2ubuntu2 [191 kB] Es wurden 191 kB in 0 s geholt (1.819 kB/s). Vormals nicht ausgewähltes Paket nano wird gewählt. (Lese Datenbank ... 25135 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../nano_2.5.3-2ubuntu2_amd64.deb ... Entpacken von nano (2.5.3-2ubuntu2) ... Trigger für install-info (6.1.0.dfsg.1-5) werden verarbeitet ... Trigger für man-db (2.7.5-1) werden verarbeitet ... nano (2.5.3-2ubuntu2) wird eingerichtet ... update-alternatives: /bin/nano wird verwendet, um /usr/bin/editor (editor) im automatischen Modus bereitzustellen update-alternatives: /bin/nano wird verwendet, um /usr/bin/pico (pico) im automatischen Modus bereitzustellen nano -w /etc/apache2/sites-available/default-ssl.conf [Ausschnitt] # A self-signed (snakeoil) certificate can be created by installing # the ssl-cert package. See # /usr/share/doc/apache2/README.Debian.gz for more info. # If both key and certificate are stored in the same file, only the # SSLCertificateFile directive is needed. SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLCertificateFile /etc/apache2/ssl/owncloud.crt SSLCertificateKeyFile /etc/apa che2/ssl/owncloud.key [/Ausschnitt]
Die letzten beiden Zeilen des Ausschnitts habe ich dort eingefügt in der Hoffnung, dass Sie dort passen. Die Anleitung lässt mich das etwas im Stich.
Vielleicht sollte ich die snakeoil.*-Einträge auskommentieren? Erst mal nicht. Doch, das steht immerhin in der Anleitung.
Ferner:
Ändern Sie anschließend noch innerhalb der Datei „default-ssl.conf“ den Verweis auf „DocumentRoot“ vom Ordner „/var/www/html“ nach „/var/www“. Starten Sie anschließend den Apache-Server neu.
Na gut.
nano -w /etc/apache2/sites-available/default-ssl.conf [Ausschnitt] <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www [/Ausschnitt]
Ich mache mal einen Test:
root@h00000001:~# /etc/init.d/apache2 restart [ ok ] Restarting apache2 (via systemctl): apache2.service.
Fehler: Gesicherte Verbindung fehlgeschlagen
An error occurred during a connection to meine-de-Adresse.de. SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG
Die Website kann nicht angezeigt werden, da die Authentizität der erhaltenen Daten nicht verifiziert werden konnte.
Tja, wenn ich die Meldung sicher interpretieren könnte. Meckern muss Firefox auf jeden Fall, weil das Zertifikat unbekannt und nicht vertrauenswürdig ist. Ein Fehler-/Warnhinweis hätte ich erwartet, aber "Error code: SSL_ERROR_RX_RECORD_TOO_LONG" verstehe ich in diesem Zusammenhang nicht.
Mit der Anleitung setze ich nicht fort, denn dort würde ich jetzt owncloude installieren. Solange der Webserver aber kein https kann, ist der Rest für mich ohne Wert.
Darum habe ich zunächst den Webroot für die /etc/apache2/sites-available/default-ssl.conf
wieder geändert, wie es dem aktuellen Ubuntu 16.04 LTS entspricht
Apache 2.4 (ab Ubuntu 13.10): /var/www/html/
Der Slash am Ende fehlt mit und ohne html in der Anleitung. Vielleicht ist das wieder so ein ärgerlicher Fehler. Die Fehlermeldung ist die gleiche.
Wegen
https://wiki.ubuntuusers.de/Apache/SSL/
habe ich im Firefox
browser.xul.error_pages.expert_bad_cert
auf TRUE gesetzt.
Das hilft bei meinem Problem nicht. Darum wieder zurückgesetzt.
In der gleichen Wikiseite beinahe übersehen:
SSL-Fehlermeldung beim Verbindungsaufbau
Erscheint beim Seitenaufruf im Browser die Fehlermeldung
ssl_error_rx_record_too_long
liegt das meist an fehlerhaft konfigurierten vHosts. Es sollten zwei NameServerHost-Einträge innerhalb der Dateien in /etc/apache2/sites-available/ vorhanden sein:
NameVirtualHost *:80
NameVirtualHost *:443
Der Eintrag für Port 80 sollte im Abschnitt default und der Eintrag für Port 443 im Abschnitt ssl sein.
Datei*en*!?
Also wenn nicht einmal klar ist, um welche Dateien es sich in dem genannten Verzeichnis handelt, installiere ich erst mal den Midnight Commander mc.
root@h00000001:~# apt-get install mc Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig The following additional packages will be installed: libssh2-1 mc-data Vorgeschlagene Pakete: arj catdvi | texlive-binaries dbview djvulibre-bin genisoimage gv imagemagick odt2txt poppler-utils python-boto python-tz xpdf | pdf-viewer zip Die folgenden NEUEN Pakete werden installiert: libssh2-1 mc mc-data 0 aktualisiert, 3 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 1.734 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 7.264 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] j Holen:1 ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial-updates/universe amd64 libssh2-1 amd64 1.5.0-2ubuntu0.1 [70,2 kB] Holen:2 ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial/universe amd64 mc-data all 3:4.8.15-2 [1.202 kB] Holen:3 ftp://ftp.stratoserver.net/pub/linux/ubuntu xenial/universe amd64 mc amd64 3:4.8.15-2 [462 kB] Es wurden 1.734 kB in 0 s geholt (2.979 kB/s). Vormals nicht ausgewähltes Paket libssh2-1:amd64 wird gewählt. (Lese Datenbank ... 25199 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../libssh2-1_1.5.0-2ubuntu0.1_amd64.deb ... Entpacken von libssh2-1:amd64 (1.5.0-2ubuntu0.1) ... Vormals nicht ausgewähltes Paket mc-data wird gewählt. Vorbereitung zum Entpacken von .../mc-data_3%3a4.8.15-2_all.deb ... Entpacken von mc-data (3:4.8.15-2) ... Vormals nicht ausgewähltes Paket mc wird gewählt. Vorbereitung zum Entpacken von .../mc_3%3a4.8.15-2_amd64.deb ... Entpacken von mc (3:4.8.15-2) ... Trigger für libc-bin (2.23-0ubuntu5) werden verarbeitet ... Trigger für man-db (2.7.5-1) werden verarbeitet ... Trigger für mime-support (3.59ubuntu1) werden verarbeitet ... libssh2-1:amd64 (1.5.0-2ubuntu0.1) wird eingerichtet ... mc-data (3:4.8.15-2) wird eingerichtet ... mc (3:4.8.15-2) wird eingerichtet ... Trigger für libc-bin (2.23-0ubuntu5) werden verarbeitet ...
Navigation in dern Einstellungen auf lynx-artige Bewegungen eingestellt, damit ich durch alle Verzeichnisse nur mit den Cursortasten rasen kann.
Also nochmal:
Es sollten zwei NameServerHost-Einträge innerhalb der Dateien in /etc/apache2/sites-available/ vorhanden sein:
NameVirtualHost *:80
NameVirtualHost *:443
Der Eintrag für Port 80 sollte im Abschnitt default und der Eintrag für Port 443 im Abschnitt ssl sein.
Es gibt eine Datei
/etc/apache2/sites-available/000-default.conf
Die hat einen Abschnitt mit <VirtualHost *:80>
Das lasse ich unverändert.
Und es gibt eine Datei
/etc/apache2/sites-available/default-ssl.conf
, die so beginnt:
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/
Muss ich vielleicht <VirtualHost _default_:443>
durch <VirtualHost *:443>
ersetzen?
Den Eintrag NameVirtualHost *:80
bzw. NameVirtualHost *:443
, also den String NameVirtualHost
finde ich
nirgends.
Dafür fällt mir etwas anderes auf:
SSLCertificateKeyFile /etc/apa che2/ssl/owncloud.key
Da ist wieder ein Leerzeichen aus der Anleitung, was apa che2
anleitet, obwohl es ganz
bestimmt apache2
heißen muss.
Die Fehlerbehebung allein reicht nicht.
Ich werde ohne Verständnis einfach einen Eintrag NameVirtualHost *:443 in die Datei
/etc/apache2/sites-available/default-ssl.conf
einfügen.
Es hilft nichts.
Es bleibt beim .
Auch unabhängig von DocumentRoot /var/www/html/
oder DocumentRoot /var/www/html
Eintrag darum wieder auskommentiert:
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost # NameVirtualHost *:443 DocumentRoot /var/www/html/
Nochmal entkommentiert und auch in der 000-default.conf den Eintrag für NameVirtualHost eingefügt.
Es bleibt bei Error code: SSL_ERROR_RX_RECORD_TOO_LONG
Etwas anderes wird - im Jahr 2012 - vorgeschlagen:
https://blog.christian-ahmer.de/ssl-error-rx-record-too-long/
_default_:443> ServerName www.beispieldomain.de:443 ServerAlias www.beispieldomain.de:443
Beispieldomain mit meiner ersetzt.
Hilft auch nicht.
http://serverfault.com/questions/836096/use-virtual-host-certificate Gleiches Problem, aber ohne entdeckte Lösung.
Bearbeitet von sebix:
Beitrag mit halbwegs lesbarer Formatierung aufgebessert. Bitte befasse dich mit der Forensyntax!