Я использую сервер 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
.
Это одна из тех вещей, которые, вероятно, не влияют на вас, но если это так, это может быть настоящей проблемой, и ее трудно диагностировать, не зная, как ее искать.