我想在服务器上安装一个Magento平台。 我使用Centos和nginx,并希望redirect所有http连接到https我已经在nginx domain.conf上设置了一个http httpsredirect,并且这些工作正常,但我怎样才能确保所有的连接是安全的。 我问,因为如果我也使用HSTS的第一个请求可能仍然是http。
我的example.org.conf文件的审查
server { listen 80 default_server; listen [::]:80 default_server; server_name example.org www.example.org; return 301 https://$server_name$request_uri; } server { #listen 80 reuseport; #listen 443 http2 ssl reuseport; listen 443 ssl; #listen 80; ... ... }
所以我又怎么能确定所有的连接都是安全的呢? 我问的第二个原因是我注意到,如果我打开与移动数据速度慢的智能手机的域名,它开始只是第二个不安全的url或我只是错了?
希望你能给我一个build议
如果没有HSTS,则无法防止由客户端发起的第一个连接将使用HTTP而不是HTTPS,因为您无法控制用户请求的协议。 redirect只有在第一个请求之后才会激活。
通过HSTS,情况更加复杂:
如何确保所有连接都安全
答:您正在永久转发所有连接301 https,因此您的服务器不可能接受不安全的连接。
您可以分析Nginx Access日志,了解有多less个请求会从HTTPredirect到https。
在你的configuration中,有些东西需要修改为Nginx的最佳实践。
server { listen 80 default_server; listen [::]:80 default_server; server_name example.org www.example.org; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name example.org www.example.org; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; }