我们有几个在 Server 2012 R2 上运行的 IIS 8.5 Web 服务器,并且启用了 SSL/TLS。
IIS 8.5 中的一个重要新功能是支持 TLS 会话恢复。这很棒因为它将 TLS 协商流量从两个 RTT 减少到一个。我们正在为现有服务减少一些数据,因此这一点至关重要。
好消息是,在绑定 https 流量并附加证书后,它似乎在 IIS 8.5 中“正常工作”。我们在第一个请求中看到 TLS 握手,在后续请求中我们只看到正在交换的数据。
有人知道吗:
- IIS 8.5 中 TLS 会话恢复的默认超时是多少?
- 我该如何调整和配置这个超时?
有关 Server 2012 R2 中 TLS 会话恢复的更多信息,请参阅此 Microsoft 文档:https://technet.microsoft.com/en-us/library/hh831771.aspx
还:如果有人能创建并标记“iis-8.5”,我将不胜感激。我的 SuperUser 积分不足以创建标签。
谢谢你!
编辑:我做了更多测试。这似乎与应用程序池无关。启动、停止和回收应用程序池不会导致 TLS 握手再次发生。但是,在 IIS 中重新启动站点(如推测的那样)确实会触发重新握手。
答案1
iis.net 论坛上的 Jean Sun 为我指明了正确的方向,然后我做了一些实验,您将在下面看到。我在这里回答并标记此为答案,以便提供更多信息。以下是来自那里的帖子(https://forums.iis.net/p/1231668/2119245.aspx)
Jean Sun 的帖子
你好,
请尝试设置 SSL 缓存超时间隔,您可以在以下链接中找到如何操作。
https://technet.microsoft.com/en-us/library/cc781248(v=ws.10).aspx
此致,
吉恩
我回复了更多详细信息
宾果。设置就是这样。谢谢!
你知道如果我预计 24/7 每隔几分钟就会有几千个连接,一个安全且推荐的值是多少吗?每隔几分钟就会有相同的客户端进行连接。
另外,您是否知道要使其正常工作,是否需要客户端使用/发送保持活动数据包?我不想让客户端这样做。
编辑:请参阅下面的注释。看来需要保持活动数据包,但如果您每 (大约) 14 分钟发出多个请求 (根据我的经验),每个服务器请求仍会节省数据。
最好的,
克里斯
编辑:在 Wireshark 中再次查看流量后,似乎无论是否设置注册表项,都会发送 TCP 保持活动数据包。因此,我在 IIS 中禁用了保持活动,无论配置了什么注册表项,它都会破坏此功能。看来 TLS 保持活动是 TLS 恢复的核心原则。
如果有人需要知道,TCP 保持活动数据包的大小为 55 字节(440 位)。根据我的观察,这些数据包大约每 45 秒发送一次,超过 SCHANNEL 缓存的最大超时时间。
另一个奇怪的行为:
我在注册表中将 SCHANNEL 缓存设置为 2 分钟。在 Server 2012 R2 上设置此项之前,在 SSL/TLS 握手重新发生之前,我经历了大约 2 小时的缓存时间。
删除注册表项后,即使在服务器重新启动后,IIS 似乎仍会引用这个两分钟的缓存值。因此,设置此值后,您需要根据需要增加/减少此时间,因为如果不明确设置,您将无法返回服务器默认值状态。