В данной статье рассмотрим, как улучшить безопасность SSL сертификата, используя для этого настройку nginx. Для настройки https на сервере, необходимо включить SSL в конфигурационном файле nginx в разделе server.

Пример подключения сертификата в конфигурационном файле

server {

    listen              443 ssl;

    server_name         www.example.com;

    ssl_certificate     www.example.com.crt;

    ssl_certificate_key www.example.com.key;

    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;

    ssl_ciphers         HIGH:!aNULL:!MD5;

…..

}

Сертификат на сервере для определенного сайта – является публичным, он загружается пользователю, который обращается к серверу. Так же имеется секретный ключ, хранящийся на сервере, к нему рекомуендуется ограничить доступ только чтение. Есть возможность хранить ключ и сертификат в одном файле, при этом клиент получит только сертификат.

Существуют директивы, которые позволяют ввести ограничения на версии шифров SSL/TLS. Из примера выше в конфигурации nginx по умолчанию \испольуется протоколы  TLSv1 TLSv1.1 TLSv1.2 и алгоритмы шифрования  HIGH:!aNULL:!MD5

Улучшаем безопасность

Что бы исключить слабые шифры применим следующие параметры

ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;

Далее необходимо закрыть уязвимость DH This server supports weak Diffie-Hellman (DH) key exchange parameter.

Необходимо сгенерировать ключ

openssl dhparam -out /etc/nginx/ssl/dhparam.pem 4096

В результате генерации получится файл, который подключим в конфигурацию nginx

ssl_dhparam /etc/ssl/certs/dhparam4096.pem;

Оптимизируем работу

SSL использует ресурсы сервера, сессии SSL сохраняются в своем кэше, разделенном по рабочим процессам. 1 мегабайт содержит порядка 4тыс сессий. 5 минут – по умолчанию значение таймаута для кэша. Эти параметры можно менять и регулировать.

ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets off;

Подключение и настройка SSL сертификата, обращайтесь [email protected]