Назад | Перейти на главную страницу

Медленное рукопожатие Apache SSL

Я использую сервер Apache 2.4.18, работающий под Ubuntu 16.04.1 LTS, только с установленными PHP 7 и Exim 4.

Рано утром квитирование SSL происходит очень быстро, около 200 мс, но со временем оно увеличивается (примерно через 1 час), достигая 8 секунд. Если я перезагружу Apache, SSL снова станет быстрым, но через некоторое время он снова замедлится, вернувшись к 8, а иногда и 30 секундам.

Я настроил Apache ssh.conf (etc / apache2 / mods-enabled) следующим образом:

    SSLRandomSeed startup builtin
    SSLRandomSeed startup file:/dev/urandom 512
    SSLRandomSeed connect builtin
    SSLRandomSeed connect file:/dev/urandom 512

    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl .crl

    SSLPassPhraseDialog  exec:/usr/share/apache2/ask-for-passphrase

    SSLSessionCache         shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
    SSLSessionCacheTimeout  300

    SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

    SSLHonorCipherOrder on
    SSLProtocol all -SSLv3

    SSLCompression off
    SSLSessionTickets off

    SSLUseStapling on
    SSLStaplingResponderTimeout 5
    SSLStaplingReturnResponderErrors off
    SSLStaplingCache shmcb:/var/run/ocsp(128000)

В настройках VirtualHost я установил следующий заголовок:

    Header always set Strict-Transport-Security "max-age=15768000"

Конфигурация сервера:

Это появляется с помощью инструмента статуса сервера Apache.

Когда HTTPS работает быстро (11:00 после перезапуска apache2): Состояние кеша сеанса SSL / TLS

Когда HTTPS медленный: (11:04 AM): Состояние кеша сеанса SSL / TLS

Это начало происходить, когда мы перешли с сервера. Новые сертификаты не запрашивались, старые SSLCertificateFile, SSLCertificateChainFile и SSLCertificateKeyFile по-прежнему используются.

Что может замедлить его работу и как это исправить?

Если у вас медленное шифрование, одна вещь, о которой не упоминалось в статье, - /dev/random против /dev/urandom. В /dev/random файл может блокировать ожидание энтропии, а плохо написанное шифрование может повторять его снова и снова. Это может быть особенно заметно на виртуальной машине, так как у нее не так много возможностей обычного оборудования, генерирующего энтропию. Если это произойдет с вами, просто используйте /dev/urandom.

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

http://www.2uo.de/myths-about-urandom/