我正在运行在Ubuntu 16.04.1 LTS下运行的Apache 2.4.18服务器,只安装了PHP 7和Exim 4。
在清晨,SSL握手非常快,大约200毫秒,但随着时间的推移它增加了(约1小时后),8秒左右。 如果我重新启动Apache,SSL会再次变快,但过了一段时间后又会变慢,返回到8秒,有时会达到30秒。
我configuration了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"
服务器configuration是:
出现使用Apache的服务器状态工具。
当HTTPS快速(apache2重启后11:00)时: SSL / TLS会话caching状态
当HTTPS速度慢时(11:04 AM): SSL / TLS会话caching状态
这从我们从服务器迁移时开始发生。 没有新的证书请求,旧的SSLCertificateFile,SSLCertificateChainFile和SSLCertificateKeyFile仍然被使用。
发生什么事情可以减慢速度,我该如何解决?
如果你的encryption速度慢,那么文章中没有提到的一点是/dev/random vs /dev/urandom 。 /dev/random文件可以阻止等待熵,严重写入的encryption可以一遍又一遍地打开。 这在虚拟机中尤其明显,因为它们在正常的熵生成硬件方面没有太多的东西。 如果发生这种情况,只需使用/dev/urandom 。
这是可能不会影响你的事情之一,但如果是这样的话,这可能是一个真正的问题,如果不知道如何去查找,就很难诊断。