Übles ssl-Problem!

Hallo, liebe Linuxmuster-Freunde,

heute habe ich ein wirklich SEHR merkwürdiges Problem:

Unser extern auf einem root-Server gehostes Moodle ist von den meisten Rechnern normal erreichbar, aber von einigen nicht: Entweder erscheint eine Seite mit

[Logo] Apache2 Ubuntu Default Page
(http-Seite, wie üblich)

oder (bei https) ssl-Fehlerseite, u.a. („Record too long“), die dann auftaucht, wenn man über Port 443 unverschlüsselten http-Verkehr sendet. Oder:

Diese Website kann keine sichere Verbindung bereitstellen

moodle.gymrhein.de hat eine ungültige Antwort gesendet.

  • Versuchen Sie, die Windows-Netzwerkdiagnose auszuführen.

ERR_SSL_PROTOCOL_ERROR

Die Adresse ist: https://moodle.gymrhein.de
Der zweite virtuelle Host ist das Booking -System: https://crbs.gymrhein.de

Nun habe ich keine Veränderungen an den ports.conf vorgenommen u.v.a. auch keine unerlaubten Einträge in den .conf-Dateien: Zwei virtuelle Hosts haben die folgenden Einträge:

<IfModule mod_ssl.c>
<VirtualHost 95.217.xxx.yyy:443>
        ServerName moodle.gymrhein.de
        ServerAdmin yyyyyyyyy@aol.com

        ServerAdmin webmaster@localhost
        DocumentRoot /usr/share/moodle
        Alias moodle /usr/share/moodle

        <DirectoryMatch /usr/share/moodle/>

        Options +FollowSymLinks
        AllowOverride None

        order deny,allow
        #deny from all
        allow from 127.0.0.0/255.0.0.0
        allow from all

        <IfModule mod_php7.c>
        php_flag magic_quotes_gpc Off
        php_flag magic_quotes_runtime Off
        php_flag file_uploads On
        php_flag short_open_tag On
        php_flag session.auto_start Off
        php_flag session.bug_compat_warn Off

        php_value upload_max_filesize 2500M
        php_value post_max_size 2500M
        php_value display_errors Off
        </IfModule>

        <IfModule mod_dir.c>
        DirectoryIndex index.php
        </IfModule>

        </DirectoryMatch>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined


Include /etc/letsencrypt/options-ssl-apache.conf

SSLCertificateFile /etc/letsencrypt/live/moodle.gymrhein.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/moodle.gymrhein.de/privkey.pem
</VirtualHost>
</IfModule>

Das sieht doch nicht falsch aus, oder ?
Bei Strato verweist ein DNS-Eintrag auf diesen Server (der selbst allerdings nicht von Strato gehostet wird) und ein Subdomaineintrag unnötigerweise auch, also gymrhein.de = moodle.gymrhein.de (wird noch gelöscht !).

Die Syntax des zweiten vhosts ist die gleiche bis auf das andere directory und den zweiten letsencrypt-Eintrag für crbs.

Manche Kollegen berichten mir, dass Firefox und Edge (Win10) die obige Fehlermeldung bringen, Chrome hingegen würde funktionieren - fehlen da etwa ssl-Bibliotheken beim apache ?

  • Kann es sein, dass der Apache überlastet ist ?
  • Ich habe das Betriebssystem (Ubuntu 18.04-Linux LTS) kurz vorher ge-upgradet: Habe ich vielleicht die CipherSuite damit „strenger“ gemacht ? Was ist da los ?

Gruß Christoph

Hallo Christoph,

mal nachsehen ob die Konfiguration in Ordnung ist:

apachectl -t -D DUMP_VHOSTS
apachectl -t

Ins apache error log sehen beim Starten von Apache.

Apache SSL Modul aktiviert?
a2enmod ssl

Viele Grüße
Klaus

Gibt es die Datei noch?

Hallo,

Das Problem besteht leider immer noch.

Ja: die gibt es !

ergab keine Besonderheiten.

Ich habe noch einen VirtualHost, Port 80 hinzugefügt, um auch den normalen http-Verkehr klar zu regeln.

Merkwürdigerweise liefert ein:

openssl s_client [HOSTNAME]:443 dieses Ergebnis:

CONNECTED(00000005)
140679291867584:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:332:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 320 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

Na, toll !
Ein Debuggen des ssl-Verkehrs ergibt immer wieder diese Meldung:

[Mon Aug 17 22:47:41.387929 2020] [core:debug] [pid 19116] protocol.c(1278): [client 2003:e8:6f1c:7900:fda3:f62f:c071:bebf:64122] AH00566: request failed: malformed request line

ab und zu auch:

[Mon Aug 17 22:47:01.705825 2020] [core:debug] [pid 19276] protocol.c(860): [client 194.87.138.61:41378] AH02418: HTTP Request Line; Unrecognized protocol 'hink' (perhaps whitespace was injected?)

Wohlgemerkt: Bei 75 % aller user FUNKTIONIERT der ssl/https-Zugriff (Letsencrypted) tadellos !
Wie biege ich dieses ssl-Problem wieder hin ?

Ratlos,
Christoph G.

Hallo Christoph,

wenn es von ganz bestimmten Rechnern aus nicht klappt, dann kann man ja mal nachforschen, was bei denen anders ist. Mir fällt ein:

  • irgendwelche besonderen Regeln bei der Firewall?
  • DNS auf dem Client?
  • Proxy im Browser eingetragen?
  • schlechte Kabel, schlechter oder anders konfigurierter Switch? Oft hilft es, einen Switch einfach mal neu zu starten.

Beste Grüße

Jörg

Hallo Christoph,

prüf doch mal an den Clients (z.B. mit ping) ob die Adresse des externen Servers überall auf die gleiche IP aufgelöst wird. Nutzt Ihr die Domain auch intern im LAN?

Viele Grüße
Tom

Hallo Christoph,

das Problem warum das bei machen Clients klappt und bei machen nicht ist IPv4/IPv6.

Du hast für IPv6 keine Apache Konfiguration, aber der Hostname moodle.gymrhein.de hat einen IPv6 DNS Record. Du musst also entweder den IPv6 DNS Record löschen, oder IPv6 auf dem Webserver deaktivieren, oder einen gültigen IPv6 Apache virtual Host erstellen.

IPv6 geht nicht:

~$ openssl s_client --connect moodle.gymrhein.de:443 -6
CONNECTED(00000003)
140586788143168:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:252:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 176 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1597730117
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---

IPv4 geht:

~$ openssl s_client --connect moodle.gymrhein.de:443 -4
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = moodle.gymrhein.de
verify return:1
---
Certificate chain
 0 s:/CN=moodle.gymrhein.de
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFWzCCBEOgAwIBAgISA7Vci06f20BMmquyA67WKHawMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0yMDA3MjMxODAzNDNaFw0y
MDEwMjExODAzNDNaMB0xGzAZBgNVBAMTEm1vb2RsZS5neW1yaGVpbi5kZTCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKe0YW5R4QfPI6wZjuE5IKyv660d
ZTNL9kIJxG2r7NsNcK1bi6ogyy1N6+FzYTCSFld/KWGudaunhR4zQzJ4tb8jvUH+
zGCi3lLm0PeAmJgYkh8j5JapRQ9xIKnVnKaTufIr2nEaTg2yJQYDYGX4TJqAO0HR
c3fCOK1AvesIoPJt00hWQopWvsUN8OvlQ1r/Gd7uHDLOC9jTKniHpCDmicjBMPIe
UXsNl/woat/0KRUGhdG2Vhw/xyGZiict7t+bK0CmDm6DqBMjcd9fPyVjl5910bwT
H5JUfp6YE5IiMbBkSsfTnvcESB/kmsG8gzFlBkvHuBrdftilu/Qwo1AmLGECAwEA
AaOCAmYwggJiMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYI
KwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUnn66f5EpAJbWIFMlf7g7
6enXs7gwHwYDVR0jBBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYIKwYBBQUH
AQEEYzBhMC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0c2VuY3J5
cHQub3JnMC8GCCsGAQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5
cHQub3JnLzAdBgNVHREEFjAUghJtb29kbGUuZ3ltcmhlaW4uZGUwTAYDVR0gBEUw
QzAIBgZngQwBAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDov
L2Nwcy5sZXRzZW5jcnlwdC5vcmcwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQDw
laRZ8gDRgkAQLS+TiI6tS/4dR+OZ4dA0prCoqo6ycwAAAXN9D1cFAAAEAwBGMEQC
IGpxNrN/653oMvrG7b/rtMMWlZvZPvxpMDs+EOZYJerPAiAIFzY/iGpNQxAuY/i6
pcpPNKThvMZCjYmwkMByTfO5wQB2AAe3XBvlfWj/8bDGHSMVx7rmV3xXlLdq7rxh
Ohpp06IcAAABc30PWSkAAAQDAEcwRQIhAOhkSEr4HSaRs1hTl4SU660tcwvLmkeE
hMXqppgMJWVWAiAsdPthdLCo7Ts0HEbKyfpa/kWFYntaOGMagr55V26v9TANBgkq
hkiG9w0BAQsFAAOCAQEAE2w3fxca5ncHI/HeB982WDz97QhPOtWuokL9iX/DGmH5
d4w8UB/Ii+/BAyNA4g9tB+WMVjfxHRUaH5PsOmWU2hmSwoUjOkqHoRym/AjFX3Yl
w4orA+BdGNHG51krHiAGCenpCi/hbVMCgafdtRzKBZiVDCzqzwxOkN2r9YJocICI
UDDEgdaTWvbvJOVx7VytwMFW7N4lltLav9XPmmg7A2obpgHcNSkPSA9ydkozVQWB
q6QEsJ4tzbfgc84zudOq5IIqot8erMqNifkCxNAG4NFCLuT4XfW/JherSJbK1jzV
kSSHLS/SP9XEgjweeShe7MAe8hWPHB64NdMz85xsEg==
-----END CERTIFICATE-----
subject=/CN=moodle.gymrhein.de
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
Peer signing digest: SHA256
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3201 bytes and written 261 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-CHACHA20-POLY1305
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-CHACHA20-POLY1305
    Session-ID: 585217F20297FC4AC65619DD9139A5EE905ADB039D3366F1AAFD2CF8B6C87D3E
    Session-ID-ctx: 
    Master-Key: 334944CA8C94716E06AD2AB97B674F1E89F92C862CAA5691E9F29888FED17B5098018430B5502A97E6819F8458C6EA4E
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 5b d9 1d a7 d8 19 fd b4-24 7e 03 75 e7 24 c5 f8   [.......$~.u.$..
    0010 - b9 75 2f 33 63 6a 6b 91-ad 86 14 7c 1f 97 45 b9   .u/3cjk....|..E.
    0020 - 3b a5 f1 c4 da 9e 32 85-84 49 6f ce 1c e3 1c 54   ;.....2..Io....T
    0030 - a6 ac 2a 4c 29 7f 02 74-b1 5d 79 e6 c7 7b 4b 62   ..*L)..t.]y..{Kb
    0040 - 3a 69 d2 48 fa 1c d4 d7-ff 57 95 aa 9c 15 c7 9e   :i.H.....W......
    0050 - 93 5a 96 26 ed f1 d2 d9-d1 19 f7 33 f7 33 cf d3   .Z.&.......3.3..
    0060 - c5 19 48 ae 52 a0 2b 16-b6 78 0e 81 2b 57 94 2e   ..H.R.+..x..+W..
    0070 - 0c 41 02 44 6d 87 f8 0e-ee f5 e4 f7 57 f0 fc 4b   .A.Dm.......W..K
    0080 - 61 5b a6 64 3a 41 c5 05-32 29 09 d1 e1 34 c3 a5   a[.d:A..2)...4..
    0090 - fe 81 4f 77 6f 19 ec 82-a0 9d 89 af 41 ed 87 3a   ..Owo.......A..:
    00a0 - 32 1e bf c6 33 37 22 2c-4d 90 56 2e 2e bf a8 af   2...37",M.V.....
    00b0 - ad 01 70 9e fb 42 fb 5c-90 d6 6e 07 27 ac 5d 31   ..p..B.\..n.'.]1

    Start Time: 1597730107
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: yes
---

Viele Grüße
Klaus

2 „Gefällt mir“

Lieber Klaus,

Du bist der Knaller ! Herzlichsten Dank !
Ja, an ipv6 habe ich auch gedacht und deswegen auch mit den enstprechenden IPs in dr Adresszeile herumgespielt. Aber klar: Eine Adresse ist ja noch lange kein Protokoll !

Ganz herzlichen Dank !

Super, freut mich wenn das jetzt geklappt hat, Christoph.
Wie ich sehe läuft es auch schon wieder :slight_smile:

Als Verbesserungsvorschlag könntest Du noch den automatischen Redirect von HTTP auf HTTPS einstellen. Dann sieht man die „Apache Ubuntu Default Page“ auch nicht.

Viele Grüße
Klaus