慢SSL apache服务器

我有一个缓慢的Apache服务器与SSL 256位证书的问题

ab -n 500 https://example.com/ Time per request 29 ms ab -n 500 http://example.com/ Time per request 10 ms 

在这两个请求中都会发送52字节,并且testing是从同一个数据中心中的服务器完成的

CONF

 SSLEngine on SSLProtocol All -SSLv2 SSLHonorCipherOrder On SSLCipherSuite ALL:!ADH:!EXP:!LOW:!RC2:!3DES:!SEED:!RC4:+HIGH:+MEDIUM 

SSL比普通的HTTP请求慢3倍是正常的吗?

你如何testing你的服务器? HTTPS服务器后面运行着什么应用程序? 你的服务器使用什么CPU? 你怎么看,你的问题缺乏很多重要的细节…

无论如何,SSL肯定比“纯”的HTTP要慢一些:公钥encryption比对称密钥要慢一些,这就是为什么pubkey只用于交换私有的对称密钥和信道交换机对称的原因密钥encryption。

HTTPS比较慢,因为它有更多的数据交换(从服务器X.509证书),它有一个安全的数据连接来build立,…

ab可以给'连接'时间,这就是你会看到你的时间差异。 TLS设置需要比没有设置更多的时间。

您需要了解ab和浏览器的区别。 (我不会回答这个问题,因为我对此不够熟悉)。

例如:

  1. 是否使用TLS会话重用? 一个浏览器会因为它而执行得更快(对于后面的请求)。 你可以用wiresharkvalidation这个(也许https://ask.wireshark.org/questions/9007/ssl-session-reuse是有用的)
  2. 使用已知缓慢的密码(您可以看到在ssl_request_log中协商的密码)
  3. 您是否支持HTTPS连接上的HTTP保持活动? 你应该尽可能长时间地把所有的资源都放在页面上。 这将真正减less对服务器的SSL / TLS请求的数量。
  4. 你的站点上是否有caching友好的内容(特别是浏览器caching)?你是否使用了响应头,如Cache-Control: public, max-age=3600, s-max-age=3600

如果您专注于这些,那么您可以轻松地使仅HTTPS的站点运行良好且快速。 这就是我所做的只有HTTPS的videostream网站,而且我不必担心SSL连接时间。

是的,HTTPS在build立连接时比HTTP慢大约3倍是正常的。 这里很好读解释为什么 。

网站放缓的原因:

  • SSL证书带有几个中间证书,可以在握手期间增加数据量。

  • OCSP和CRL的性能也没有得到纠正,因为一个网站在回复OCSP请求和build立连接时需要1/3秒的时间。

有关快速HTTPS连接的build议:

  • 通过压缩文本内容可以缓解CPU资源的利用率,或者升级当前进程来处理encryption任务。

  • 您需要确保通过HTTPS检索页面上的所有内容。

  • 接受SPDY (Google的开源networking协议)的帮助,以最大限度地减less网页加载时间。

  • 在证书权限方面,CA可以将OCSP和CRL响应时间从300ms 减less到100ms(毫秒)。

  • CA可以减lessSSL证书中的中间链大小,因为它消耗更多的字节和时间。