Подтвердить что ты не робот

Кэш сеанса не обнаружен в nginx

SSLlabs все еще показывает следующее сообщение даже после того, как я добавил ssl_session_cache

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

Вот моя полная конфигурация

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
    }
4b9b3361

Ответ 1

SSL Labs не предполагает, что SNI доступен для клиента, поэтому он тестирует только виртуальный сервер по умолчанию.

Проблема может заключаться в том, что на сервере по умолчанию не включено кэширование сеансов SSL. Чтобы включить его, вам просто нужно добавить эту строку ssl_session_cache в ваш default_server. В качестве альтернативы, если вы хотите, чтобы эта конфигурация работала на всех ваших виртуальных серверах nginx (что я бы порекомендовал), вы можете переместить строку ssl_session_cache за пределы объявления сервера, чтобы она ssl_session_cache ко всем из них.

Вот конфигурация, которую я использую:

# 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
}

Источники:

  1. Я протестировал оба варианта на своем собственном сервере, и SSL Labs это нравится!
  2. Эта тема в списке рассылки Nginx

Ответ 2

когда вы используете один сервер, это будет правильно. Если у вас есть баланс нагрузки перед серверами, это может быть так. Потому что запрос не может передать на тот же сервер раньше. Я предлагаю ssl_session_tickets.