我只有example.com的SSL证书,并希望使用nginx将http://example.com和http://*.example.com重定向到https://example.com。我知道在没有包含所有子域的证书的情况下无法通过SSL重定向子域名,但至少,我应该能够重定向键入 www .example.com(端口80)的用户)到SSL主页。
我当前的nginx配置如下:
server {
# This should catch all non-HTTPS requests to example.com and *.example.com
listen 80;
server_name example.com *.example.com;
access_log off;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
# Actual server config starts here...
请求http://example.com将被正确地重定向到https://example.com,而http://www.example.com会导致https://www.example.com(当然,浏览器会显示证书错误)。我认为它与server_name值的处理顺序有关,但我没有找到任何有关如何强制执行某个订单的信息。
答案 0 :(得分:0)
尝试添加其他服务器{}
server {
listen 80;
server_name www.example.com
access_log off;
return 301 https://example.com$request_uri;
}
答案 1 :(得分:0)