我们已将“ ssl_early_data on”和“ proxy_set_header Early-Data $ ssl_early_data”设置为“在使用openssl 1.1.1构建的nginx 1.15.6配置中,但是当我们运行以下命令时,它表明EarlyData未发送。知道如何解决此问题吗?
openssl s_client -connect www.rupeevest.com:443
SSL握手已读取4693字节并写入399字节
新版TLSv1.3,密码为TLS_AES_256_GCM_SHA384 服务器公钥为2048位 不支持安全重新协商 压缩:无 扩展:无 没有协商ALPN 未发送早期数据
答案 0 :(得分:2)
为了发送“早期数据”,客户端和服务器必须支持PSK交换模式(会话cookie)。参见https://tools.ietf.org/html/rfc8446#section-2.3
作为一个用例,要使用OpenSSL进行验证,请先将会话保存到文件中,然后再使用该会话文件并将早期数据(HTTP请求)发送到服务器。
$ host=www.example.org # replace with your server name
$ echo -e "HEAD / HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n" > request.txt
$ openssl s_client -connect $host:443 -tls1_3 -sess_out session.pem -ign_eof < request.txt
$ openssl s_client -connect $host:443 -tls1_3 -sess_in session.pem -early_data request.txt
请注意您的服务器必须支持TLS 1.3和0-RTT,否则该示例将无法正常工作。
希望这会有所帮助!