我正在使用SSL设置nginx服务器。
使用ssl的域名是dev.cooknconnect.com 我想将所有请求从http://domain.com重定向到https://domain.com 我目前有以下服务器块设置:
server {
listen 1.2.3.4:80 default;
server_name domain.com;
server_tokens off;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl;
server_name domain.com www.domain.com;
keepalive_timeout 70;
server_tokens off;
ssl on;
ssl_certificate /etc/ssl/certs/certificate.crt;
ssl_certificate_key /etc/ssl/private/certificate.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://domain.com;
}
}
这目前无效,但我不明白为什么不行。任何人都可以在我的配置中发现任何错误。如果没有,请提示一些方法来跟踪或调试相同的内容。
答案 0 :(得分:0)
你可以使用它,它应该正常工作
server {
listen 80;
server_name domain.com;
server_tokens off;
return 301 https://$http_host$request_uri;
}
请记住,https://dev.yourdomain.com
不起作用,因为您的证书仅针对根域发布,dev子域的https将显示黄色证书警告。
答案 1 :(得分:0)
这对我来说很好用:
server{
listen 80;
server_name *.example.com;
rewrite ^ https://$host$request_uri? permanent;
}
这会将域本身和子域的http永久重写为https到https模式。