第一次访问网站时,连接和ssl握手慢

我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战

优化了各种配置,还是无效。
换证书解决。
客户端验证证书时耗时太久,应该是国外的证书引起的。

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL握手详细过程:

一、客户端发出加密通信请求ClientHello

提供:
1,协议版本(如TSL1.0)
2,随机数1(用于生成对话密钥)
3,支持的加密方法(如RSA公钥加密)
4,支持的压缩方法

二、服务器回应SeverHello

回应内容:
1,确认使用的加密通信协议版本(TSL1.0)
2,随机数2(用于生成对话密钥)
3,确认加密方法(RSA)
4,服务器证书(包含非对称加密的公钥)
5,(可选)要求客户端提供证书的请求

三、客户端验证证书

如果证书不是可信机构颁布,或证书域名与实际域名不符,或者证书已经过期,就会向访问者显示一个警告,是否继续通信

四、客户端回应

证书没有问题,就会取出证书中的服务器公钥
然后发送:
1,随机数3(pre-master key,此随机数用服务器公钥加密,防止被窃听)
2,编码改变通知(表示随后的信息都将用双方商定的方法和密钥发送)
3,客户端握手结束通知

五、双方生成会话密钥

双方同时有了三个随机数,接着就用事先商定的加密方法,各自生成同一把“会话密钥”
服务器端用自己的私钥(非对称加密的)获取第三个随机数,会计算生成本次所用的会话密钥(对称加密的密钥),如果前一步要求客户端证书,会在这一步验证

六、服务器最后响应

服务器生成会话密钥后,向客户端发送:
1,编码改变通知(后面的信息都用双方的加密方法和密钥来发送)
2,服务器握手结束通知

猜你喜欢

转载自juejin.im/post/7031341065135210526