当前SSL连接保持活动状态时,是否可以重新协商SSL握手。当新握手成功时,服务器应该响应新握手的确认。
我搜索过SSL重新协商但我找不到具体的东西。有谁知道这样的事情是否可能?
答案 0 :(得分:2)
是的,重新谈判是TLS协议的一部分。它可以是客户端和服务器启动的。对它的支持取决于实施。此外,重新协商使TLS attack成为可能。
答案 1 :(得分:0)
前段时间我已经遇到这种情况,我们正在使用GoLang。 可以通过将tlsCfg.Renegotiation设置为以下值之一来设置重新协商模式:
以下功能可用于设置请求TLS配置。
func (r *request) SetRenegotiationMode(mode string) (IRequest, error) {
modeMap := map[string]tls.RenegotiationSupport{
"once": tls.RenegotiateOnceAsClient,
"freely": tls.RenegotiateFreelyAsClient,
"never": tls.RenegotiateNever,
}
if val, ok := modeMap[mode]; ok {
if r.tlsCfg == nil {
r.tlsCfg = &tls.Config{}
}
r.tlsCfg.Renegotiation = val
} else {
//if anything other than the allowed values is passed, it'll thrown an error
return nil, <DEFINE AN ERROR>
}
return r, nil
}