Nginx监听443为了redirect没有ssl证书的域

我获得了newdomain.org.il的ssl证书

但是,我从https://olddomain.org.il获得一些请求(图片)

(由于客户有没有模式的链接,这是可以的)

我可以轻松地redirect非https请求:

server { listen 80; server_name www.olddomain.org.il olddomain.org.il; return 301 https://newdomain.org.il$request_uri; } 

但是,这不会赶上https的旧域请求

但是如果我为olddomain添加一个listen子句

 server { listen 80; listen 443 ssl; server_name www.olddomain.org.il olddomain.org.il; return 301 https://newdomain.org.il$request_uri; } 

请求会得到一个sslError,因为主机名将不匹配证书域。

任何解决方法这在nginx? (我知道我可以解决旧域名的另一个ssl证书或代码更改,以防止这些遗留的URL存在,但由于这是从旧应用程序的迁移过程,我真的不想。

简短的回答,没有。

HTTPS的重点在于确保连接的安全性,您需要有一个NGINX加载的证书,并且浏览器必须接受来自它的加载资源。 将资源保留在旧域中并通过HTTPS提供服务的唯一方法是为旧域添加有效的证书。