2017-05-10 3 views
2

Ich habe eine Website https://warsoftheheroes.eu/, die mit Apache mit SSL gehostet wird mit Let's Encrypt certyficate. In Chrome/Chromium Browser-Entwickler-Tools -> Sicherheit sehe ich diese Meldung:Apache SSL: "eine veraltete Schlüsselaustausch (RSA)"

Obsolete Connection Settings 

The connection to this site uses a strong protocol (TLS 1.2), an obsolete key exchange (RSA), and a strong cipher (AES_128_GCM). 

und hier ist meine Apache SSL-Konfiguration:

<IfDefine SSL> 
<IfDefine SSL_DEFAULT_VHOST> 
<IfModule ssl_module> 
Listen 443 

<VirtualHost _default_:443> 
    ServerName localhost 
    Include /etc/apache2/vhosts.d/default_vhost.include 
    ErrorLog /var/log/apache2/ssl_error_log 
    <IfModule log_config_module> 
      TransferLog /var/log/apache2/ssl_access_log 
    </IfModule> 
    SSLEngine on 
    SSLProtocol ALL -SSLv2 -SSLv3 
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:HIGH:!RC4:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK 
    SSLHonorCipherOrder On 
    SSLCertificateFile /home/wof/ssl/fullchain1.pem 
    SSLCertificateKeyFile /home/wof/ssl/privkey1.pem 
    <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
      SSLOptions +StdEnvVars 
    </FilesMatch> 
    <Directory "/var/www/localhost/cgi-bin"> 
      SSLOptions +StdEnvVars 
    </Directory> 
    <IfModule setenvif_module> 
      BrowserMatch ".*MSIE.*" \ 
        nokeepalive ssl-unclean-shutdown \ 
        downgrade-1.0 force-response-1.0 
    </IfModule> 
    <IfModule log_config_module> 
      CustomLog /var/log/apache2/ssl_request_log \ 
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 
    </IfModule> 
</VirtualHost> 
</IfModule> 
</IfDefine> 
</IfDefine> 

# vim: ts=4 filetype=apache 

Was soll ich in dieser Konfigurationsdatei ändern, um loszuwerden, dieser veraltete Schlüsselaustausch?

+0

Ihr Server scheint keine ECDHE-basierten Verschlüsselungssätze auszuwählen. Welche Version von Apache und OpenSSL benutzt du? –

+1

Stack Overflow ist eine Website für Programmier- und Entwicklungsfragen. Diese Frage scheint off-topic zu sein, weil es nicht um Programmierung oder Entwicklung geht. Siehe [Welche Themen kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) in der Hilfe. Vielleicht [Super User] (http://superuser.com/) oder [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) wäre ein besserer Ort, um zu fragen. Siehe auch [Wo poste ich Fragen zu Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww

+1

Als ich über Google nach einem Ort suchte, um meine Frage zu stellen (Apache, Stackexchange), die meisten Ergebnisse auf Stackoverflow hingewiesen. Ich war überrascht, aber ich ging nach der Mehrheit. –

Antwort

1

Gemäß der SSLLabs test unterstützt Ihre Website keine ECDHE-Verschlüsselungen, auch wenn es so aussieht, als hätten Sie diese Verschlüsselungen in Ihrer Serverkonfiguration konfiguriert. Da TLS 1.2-Unterstützung (die Sie haben) und ECDHE-Unterstützung (die Sie nicht haben) beide in OpenSSL 1.0.1 hinzugefügt wurden, vermute ich, dass Sie eine Version von OpenSSL haben, die ohne Unterstützung für ECC (und damit ECDHE) kompiliert wird. .

Soweit ich weiß, wurden ältere Versionen von RHEL (und somit auch CentOS) und Fedora mit ECC-Unterstützung ausgeliefert, die aus Patentgründen entfernt wurden, damit Sie überprüfen können, ob Sie eines der betroffenen Systeme verwenden. Die Ausgabe von openssl ciphers -V gibt Ihnen welche Verschlüsselungen unterstützt werden und Sie sollten überprüfen, ob ECDHE dort unterstützt wird.

+0

Das Problem wurde openssl aufgetaucht/mit bindist USE-Flag (Gentoo) kompiliert. Danke, dass Sie mich in die richtige Richtung weisen. –

1

Entschuldigung für meinen Fehler früher. Einige Dinge gemischt.

Dies ist, wie zu sehen, welche Chiffren werden auf einem Server unterstützt und in welcher Reihenfolge sie bevorzugt:

nmap --script ssl-enum-ciphers -p 443 warsoftheheroes.eu 

Starting Nmap 7.40 (https://nmap.org) at 2017-05-10 17:23 CEST 
Nmap scan report for warsoftheheroes.eu (81.163.204.80) 
Host is up (0.051s latency). 
rDNS record for 81.163.204.80: pppoe-static-a-80.interblock.pl 
PORT STATE SERVICE 
443/tcp open https 
| ssl-enum-ciphers: 
| TLSv1.0: 
|  ciphers: 
|  TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A 
|  compressors: 
|  NULL 
|  cipher preference: server 
| TLSv1.1: 
|  ciphers: 
|  TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A 
|  compressors: 
|  NULL 
|  cipher preference: server 
| TLSv1.2: 
|  ciphers: 
|  TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A 
|  TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A 
|  TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A 
|  TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A 
|  TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A 
|  TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A 
|  TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A 
|  TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A 
|  TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A 
|  TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A 
|  compressors: 
|  NULL 
|  cipher preference: server 
|_ least strength: A 

Wie Sie sehen können, die dritte Option für TLSv1.2 ist TLS_RSA_WITH_AES_128_GCM_SHA256, welcher Teil von 'ist AES128 ', die Sie in Ihrer Konfiguration aktiviert haben.

Steffen Ullrich hat wahrscheinlich recht mit der fehlenden ECDHE-Unterstützung, weshalb die Chiffre mit RSA Key Exchange wahrscheinlich an dritter Stelle steht. Ich denke, dass die ECDHE-Chiffren bevorzugt würden, wenn sie unterstützt würden.

+1

* "In Ihrem Fall wird RSA als Schlüsselaustauschmethode bevorzugt." * - das ist falsch. Die ersten Einträge wie 'ECDHE-RSA-AES128-GCM-SHA256' verwenden RSA für die Authentifizierung, aber ECDHE für den Schlüsselaustausch. Siehe 'openssl cipher -V', die Ihnen die Authentifizierung (Au = ...) und den Schlüsselaustausch (Kx = ...) anzeigt. –

+0

Ja, ich habe alle RSA-Einträge aus SSLCipherSuite entfernt und nichts geändert, Nachricht ist immer noch –