同事!
好吧,我对 SSL 身份验证的速度有很大的疑问。由于我将我的网站移动到 SSL,GoogleBot 减少了我网站的索引,因为 SSL 协商的值低于我通过 WebPageTest.org 获得的值:
网址:https://www.musiconline.com.br/jorge-e-mateus/alcapao/
主持人:www.musiconline.com.br
错误/状态代码:200
客户端端口:0
开始偏移:0.735 秒
DNS 查找:34 毫秒
初始连接:170 毫秒
SSL 协商:531 毫秒
到第一个字节的时间:311 毫秒
内容下载:178 毫秒
字节输入(下载):13.2 KB
字节输出(上传):0.4 KB
看,“SSL 协商”在 531 毫秒内,这是一个很大的值。
有人知道我该如何解决这个问题?
我验证了 mod_spdy,但是,我无法安装,因为在我的 Linux CentOS 6, Apache 2.4 中出现以下消息:
root@server1 [/home/login/src]# rpm -U mod-spdy-*.rpm
警告:mod-spdy-beta_current_x86_64.rpm:标题 V4 DSA/SHA1 签名, key ID 7fac5991:NOKEY
错误:依赖项失败:
httpd >= 2.2.4 is needed by mod-spdy-beta-0.9.4.3-420.x86_64
mod_ssl >= 2.2 is needed by mod-spdy-beta-0.9.4.3-420.x86_64
root@server1 [/home/login/src]# httpd -v
服务器版本:Apache/2.4.12 (Unix)
服务器建成时间:2015 年 3 月 21 日 10:58:04
Cpanel::Easy::Apache v3.28.4 rev9999
root@server1 [/home/molbr/src]# uname -a
Linux server1.musiconline.com.br 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
感谢您的帮助。
最佳答案
Initial Connection: 170 ms
SSL Negotiation: 531 ms
查看数据包捕获,我可以看到在初始 TCP 握手之后,客户端开始握手,然后服务器需要很长时间才能将所有必要的数据发回(ServerHello、证书...)。这些数据需要 5 个数据包,并且由于各种 TCP 魔法和操作系统调整,最后一个数据包只有在获得对先前数据包的确认后才会发送。详细地说,这个 TCP 魔法可能是 TCP 慢启动,并且在您使用的 CentOS 版本中,初始拥塞窗口固定为 4(请参阅 https://www.igvita.com/2011/10/20/faster-web-vs-tcp-slow-start/)。
你能做什么:修复你的证书链。如果你看 SSLLabs report您将看到“链问题:包含 anchor ”,这意味着您发送根证书,即使客户端将忽略根证书,而是使用客户端内置的受信任 CA(必须从本地信任构建信任链! )。如果您通过删除此根证书来修复您的配置,则服务器发送的数据会更短,并且您不会遇到启动缓慢的问题。
关于openssl - 使用 Apache 2.4 OpenSSL 1.0 使 Linux CentOS 上的 SSL 更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29183874/