В данной статье рассмотрим, как улучшить безопасность 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 сертификата, обращайтесь office@itfb.com.ua