我尝试从旧域重定向到新域。
旧域曾经拥有SSL证书,但它不再具备。
所以我需要301重定向这些:
http://olddomain.co.uk
http://www.olddomain.co.uk
https://olddomain.co.uk
https://www.olddomain.co.uk
全部:https://www.newdomain.co.uk
这是我的配置:
server {
listen 80;
listen 443 ssl;
server_name olddomain.co.uk www.olddomain.co.uk;
return 301 https://www.newdomain.co.uk;
}
我正在使用http://www.redirect-checker.org进行测试。
http
网址的重定向都很好,但根本找不到https
网址,就好像这个服务器指令没有抓住{ {1}}网址
修改
要明确的是,我没有看到证书错误,Chrome表示"此网站无法访问",它对证书没有任何说明。 redirect-checker.org说"找不到网址"。
编辑2
我找到了另一个https
文件,该文件正在运行(所有4个网址,包含.conf
,重定向,未安装证书)。这是复制粘贴的:
https
这些全部重定向:
server {
listen 80;
listen 443 ssl;
server_name thepreventduty.com www.thepreventduty.com;
return 301 $scheme://www.thepreventduty.co.uk$request_uri;
}
http://thepreventduty.com
http://www.thepreventduty.com
https://thepreventduty.com
至https://www.thepreventduty.com
,我没有https://www.thepreventduty.co.uk
的ssl证书。
您可以在此处查看是否有效:http://www.redirect-checker.org/
当我为另一个域添加另一个thepreventduty.com
时(我在.conf
中使用include websites/*.conf;
),完全相同的nginx.conf
指令,只更改了域名 - 它没有用!
为什么..?
答案 0 :(得分:0)
HTTPS连接表示SSL会话中的HTTP连接。 要建立SSL会话,您需要证书和密钥。
来自nginx的官方网站:
要配置HTTPS服务器,必须在服务器块中的侦听套接字上启用ssl参数,并且应指定服务器证书和私钥文件的位置
因此,您需要指定证书和密钥的位置。 如果SSL不正确,您将在重定向之前收到证书错误。
我建议您使用acme.sh获取有效的证书和密钥。
首先,您需要临时禁用重定向并指定旧域的根目录。
然后按照说明操作: https://github.com/Neilpang/acme.sh
完成后,启用重定向。