我有一个HTTPS网站,我想减少这个网站的SSL时间。 SSL证书已安装在AWS ELB上。
如果我从荷兰访问该网站,则SSL时间很长,但如果我从其他国家/地区访问同一网站,则SSL时间很短。那是为什么?
我基本上试图最小化此页面中显示的时间
http://tools.pingdom.com/fpt/#!/ed9oYJ/https://www.google.com/index.html
答案 0 :(得分:16)
许多因素会影响SSL时间,包括:
基础设施(这不会影响SSL,但所有网络流量):
设置SSL(通过https://www.ssllabs.com/ssltest运行您的网站,您应该获得健康状况):
重复访问 - 虽然上面的内容有助于初始连接,但大多数网站都需要下载多个资源,而且设置不当可能每次都需要完成整个握手(如果您重复看到这一点,这一点应该很明显运行webpagetest.org之类的每个请求的SSL连接设置:)
我真的需要知道您的网站,看看哪些可以改进(如果有的话)。如果不愿意这样做,那么我建议你进行ssllabs测试,并向你提出的任何你不理解的事情寻求帮助,因为它需要很多详细的知识才能理解。
如果有帮助,我会运行一个个人博客,详细解释其中的一些概念:https://www.tunetheweb.com/security/https/
答案 1 :(得分:1)
您可以尝试使用ECDSA证书:https://scotthelme.co.uk/ecdsa-certificates/
但https的成本仅在第一次请求时可见:会话票证可以避免所有其他请求的成本。他们被激活了吗? (你可以用ssllabs.com查看)
如果你能使用SPDY或http2,它也可以提高速度。
ECDSA密钥,SPDY和http2减少了必要的往返次数,因此它应该减少两个位置之间的差异。
答案 2 :(得分:0)
你说你不使用CDN,但我相信你应该。这就是原因:
通过TLS / SSL连接涉及握手安全连接,这需要在任何数据开始流动之前客户端和服务器之间进行额外通信。 This link has a handy diagram of the SSL handshake和this link explains the first few milliseconds of an HTTPS connection。
Jordan Sissel wrote about his experiences with SSL handshake latency:
我开始调查HTTP和HTTPS之间类似请求的延迟差异。 ... 一切都在握手中。 ... 关键是,无论您的SSL加速器(硬件负载均衡器等)有多快,如果您的SSL端点不在用户附近,那么您的第一次连接将会很慢。
如果您使用CDN,则可以在客户端和最近的边缘位置之间进行握手,从而显着改善延迟。