2014-03-29 14 views
13

SSLlabs erfasst noch die folgende Meldung zeigen auch nachdem ich das hier ssl_session_cacheSession Cache nicht in nginx

Session resumption (caching) No (IDs assigned but not accepted) 

hinzugefügt meine vollständige Konfiguration ist

server { 
    listen  443 spdy; #Change to 443 when SSL is on 
    ssl on; 
    ssl_certificate /etc/ssl/domain.com_bundle.crt; 
    ssl_certificate_key /etc/ssl/domain.com.key.nopass; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on; 
    #ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; 
    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; 
    ssl_session_cache shared:SSL:10m; 
    ssl_session_timeout 10m; 
    ssl_buffer_size 8k; 
    ssl_stapling on; 
    ssl_stapling_verify on; 
    ssl_trusted_certificate /etc/ssl/trustchain.crt; 
    resolver 8.8.8.8 8.8.4.4; 
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; 

    #rest config goes here 
    } 

Antwort

30

SSL Labs nicht davon ausgehen, dass SNI verfügbar an den Client, so dass nur der virtuelle Standardserver getestet wird.

Das Problem besteht möglicherweise darin, dass auf dem Standardserver kein SSL-Sitzungscache aktiviert ist. Um es zu aktivieren, müssen Sie nur diese ssl_session_cache Zeile zu Ihrem default_server hinzufügen. Wenn Sie möchten, dass diese Konfiguration auf allen virtuellen nginx-Servern funktioniert (was ich empfehlen würde), können Sie die Zeile ssl_session_cache auch außerhalb der Server-Deklaration verschieben, sodass sie für alle gilt.

Hier ist die Konfiguration, die ich verwende:

# All your server-wide SSL configuration 

# Enable SSL session caching for improved performance 
# http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_cache 
ssl_session_cache shared:ssl_session_cache:10m; 

server { 
    # All your normal virtual server configuration 
} 

Quellen:

  1. Getestet habe ich beiden Optionen auf meinem eigenen Server und SSL Labs liebt es!
  2. This thread on the Nginx mailing list

HINWEIS: dies nur auf einem „Single Server“ arbeiten, wenn Sie nginx hinter einem Load Balancer oder Docker laufen/K8S mit Skalenwert von mehr als 1 Cluster dann der ssl_session_cache ist nicht geteilt und Sie werden immer noch den ursprünglichen Fehler erhalten.

+0

Aber das war schon Teil des OP seine Konfig über 'ssl_session_cache shared: SSL: 10m;' oder wurde es nachträglich bearbeitet? – Karussell

+1

@Krussel Der wichtige Teil ist, wo Sie die 'ssl_session_cache' Zeile setzen. Sie müssen es auf den Standardserver anwenden, also entweder in die globale Konfiguration (wie oben gezeigt) oder in Ihren 'default_server' Konfigurationsblock. – dampkwab

+0

Also würde es in der 'server {' config wie vom OP gezeigt nicht funktionieren? – Karussell

1

Wenn Sie einen Server verwenden, ist es korrekt. Wenn Sie Lastausgleich vor Servern haben, kann es so sein. Aufgrund der Anfrage kann nicht auf den gleichen Server übertragen werden. Ich schlage ssl_session_tickets vor.

+1

Könnten Sie genauer sein? –