#default:
server {
listen 80 default_server;
server_name _;
return 404;
}
server {
listen 443 default_server;
server_name _;
ssl_certificate /etc/nginx/ssl/dummy.crt;
ssl_certificate_key /etc/nginx/ssl/dummy.key;
return 404;
}
#old-domain:
server {
listen 80;
server_name old-domain.com;
server_name www.old-domain.com;
return 301 https://www.old-domain.com$request_uri;
}
server {
listen 443;
server_name old-domain.com;
server_name www.old-domain.com;
ssl_certificate /etc/nginx/ssl/old-domain.crt;
ssl_certificate_key /etc/nginx/ssl/old-domain.key;
#catch all
return 301 https://new-domain.com;
}
#new-domain:
server {
listen 80;
server_name new-domain.com;
server_name www.new-domain.com;
return 301 https://www.new-domain.com$request_uri;
}
server {
listen 443;
server_name new-domain.com;
server_name www.new-domain.com;
ssl_certificate /etc/nginx/ssl/new-domain.crt;
ssl_certificate_key /etc/nginx/ssl/new-domain.key;
....
}
根据要求,以下是 curl -I 对各种请求的输出:
HTTP/1.1 301 永久移动 服务器:nginx/1.16.1 日期:2019 年 11 月 11 日星期一 07:48:57 GMT 内容类型:text/html 内容长度:169 连接:保持活动 位置:https://www.old.domain.com/
curl:(60)SSL 证书问题:自签名证书更多详细信息请参见:https://curl.haxx.se/docs/sslcerts.html curl 无法验证服务器的合法性,因此无法与其建立安全连接。要了解有关此情况的更多信息以及如何修复它,请访问上面提到的网页。
答案1
我认为问题出在证书上。您需要将 SSL 正确证书添加到您在旧域上重定向的服务器块。确保旧域上的证书正确,否则它将不起作用