TLS 1.3 早期数据 $ssl_early_data 放在哪里
TLS 1.3 early data where to put $ssl_early_data
我已将 ssl_early_data on;
设置为我的 nginx.conf(在 http { }
内)并根据这些命令,
echo -e "HEAD / HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n" > request.txt
openssl s_client -connect example.tld:443 -tls1_3 -sess_out session.pem -ign_eof < request.txt
openssl s_client -connect example.tld:443 -tls1_3 -sess_in session.pem -early_data request.txt
它确实工作正常。
根据nginx documentation (https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data),建议设置proxy_set_header Early-Data $ssl_early_data;
.
我的问题是:我在哪里设置这个? ssl_early_data on;
之后,还在 http { }
?
里面
您应该将 Early-Data 传递给您的应用程序。所以你必须有类似的东西:
http {
...
# Enabling 0-RTT
ssl_early_data on;
...
server {
...
# Passing it to the upstream
proxy_set_header Early-Data $ssl_early_data;
}
}
否则,您的应用程序容易受到重放攻击:https://blog.trailofbits.com/2019/03/25/what-application-developers-need-to-know-about-tls-early-data-0rtt/
我已将 ssl_early_data on;
设置为我的 nginx.conf(在 http { }
内)并根据这些命令,
echo -e "HEAD / HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n" > request.txt
openssl s_client -connect example.tld:443 -tls1_3 -sess_out session.pem -ign_eof < request.txt
openssl s_client -connect example.tld:443 -tls1_3 -sess_in session.pem -early_data request.txt
它确实工作正常。
根据nginx documentation (https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data),建议设置proxy_set_header Early-Data $ssl_early_data;
.
我的问题是:我在哪里设置这个? ssl_early_data on;
之后,还在 http { }
?
您应该将 Early-Data 传递给您的应用程序。所以你必须有类似的东西:
http {
...
# Enabling 0-RTT
ssl_early_data on;
...
server {
...
# Passing it to the upstream
proxy_set_header Early-Data $ssl_early_data;
}
}
否则,您的应用程序容易受到重放攻击:https://blog.trailofbits.com/2019/03/25/what-application-developers-need-to-know-about-tls-early-data-0rtt/