ssl - TLS 1.3 早期数据放在哪里 $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 文档(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/
推荐阅读
- postman - 如何通过数据文件跳过纽曼中的第一个/当前请求?
- css - 如何在 react-native 中将 View 组件左右对齐
- php - foreach 的序列化数据列表
- react-native - React Native 中的 PDF 下载器
- python - 如何在 python 烧瓶中对两个或多个 CSV 文件进行验证
- neural-network - 为什么 1st epoch 在训练神经网络模型时需要大量时间?
- angular - 组件中的变量仅在 Angular 4 服务中的第二个函数调用后更新
- java - 如何在 Android 中第一次使用 EventBus
- amazon-web-services - npm run build 不会在 elasticbeanstalk 上创建构建目录
- mysql - 如何用mysql查询替换日期