使用Apache 2.4 OpenSSL 1.0使Linux CentOS上的SSL更快

使用Apache 2.4 OpenSSL 1.0使Linux CentOS上的SSL更快,openssl,centos6,apache2.4,mod-ssl,mod-spdy,Openssl,Centos6,Apache2.4,Mod Ssl,Mod Spdy,同事们 嗯,我遇到了SSL身份验证速度的一个大问题。由于我将我的网站移动到SSL,GoogleBot减少了我网站的索引,因为SSL协商的值低于我从WebGetest.org获得的值: 网址: 主持人:www.musiconline.com.br 错误/状态代码:200 客户端端口:0 起始偏移量:0.735秒 DNS查找:34毫秒 初始连接:170毫秒 SSL协商:531毫秒 到第一个字节的时间:311毫秒 内容下载:178毫秒 字节(下载):13.2 KB 输出字节(上载):0.4KB 看,“

同事们

嗯,我遇到了SSL身份验证速度的一个大问题。由于我将我的网站移动到SSL,GoogleBot减少了我网站的索引,因为SSL协商的值低于我从WebGetest.org获得的值:

网址:

主持人:www.musiconline.com.br

错误/状态代码:200

客户端端口:0

起始偏移量:0.735秒

DNS查找:34毫秒

初始连接:170毫秒

SSL协商:531毫秒

到第一个字节的时间:311毫秒

内容下载:178毫秒

字节(下载):13.2 KB

输出字节(上载):0.4KB

看,“SSL协商”是531ms,一个很大的值

有人知道我如何解决这个问题吗


我验证了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:Header V4 DSA/SHA1签名,密钥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::apachev3.28.4 rev9999


root@server1[home/molbr/src]#uname-a

Linux服务器1.musiconline.com.br 2.6.32-431.20.3.el6.x86_64#1 SMP周四6月19日21:14:45 UTC 2014 x86_64 x86_64 GNU/Linux


谢谢你的帮助

初始连接:170毫秒

SSL协商:531毫秒

查看数据包捕获,我可以看到,在初始TCP握手之后,客户端开始握手,然后服务器需要很长时间才能发送回所有必要的数据(ServerHello,证书…)。这些数据需要5个数据包,并且由于各种TCP魔术和操作系统调优,最后一个数据包只有在得到前一个数据包的确认后才会被发送。详细地说,这种TCP魔术可能是TCP慢速启动,在您使用的CentOS版本中,初始拥塞窗口为4(请参阅)


您可以做什么:修复您的证书链。如果查看,您将看到“链问题:包含锚点”,这意味着您发送根证书,即使客户端将忽略根证书,而是使用内置于客户端的受信任CA(信任链必须从本地信任中构建!)。如果通过删除此根证书来修复配置,则服务器发送的数据将更短,并且不会遇到启动缓慢的问题。

此问题似乎与主题无关,因为它与编程或开发无关。请参见帮助中心中的。也许,或者是一个更好的询问的地方。也可以查看补丁。据介绍,密码套件比AES/GCM快2到4倍。遗憾的是,它在OpenSSL中仍然不可用(请参阅)。@jww:因为性能问题是在SSL握手期间,所以选择哪种对称密码无关紧要。@Steffen-同意密钥协商/交换通常是一个难点。但我不清楚是什么主导了(感知到的)性能问题,因为这个问题几乎没有细节。他还可以运行一台64位机器,并使用enable-ec_nistp_64_gcc_128配置OpenSSL,因为它比ec快2到4倍。他还应该通过调用
SSL\u CTX\u set\u cipher\u list
(这可以在
ClientHello
中保存额外的TCP段)来保持密码套件列表的小型化。他还可以通过仅使用EC调用
SSL\u CTX\u set\u cipher\u list
来确保服务器上的高性能密码…@jww:查看我认为的问题是什么:(无用的)太大的证书链导致与TCP的不良交互慢启动。