简体   繁体   中英

NGINX Redirect HTTPS to HTTP getting Cert Error

I have the following NGINX configuration to redirect https to http and then run 301 redirects. The problem is, if people are visiting https://domain.com instead of being redirected they are stuck on a certificate error page.

server {
        listen 443;
        server_name domain.com www.domain.com;
        rewrite ^(.*) http://$host$1 permanent;
}
server {
        listen 80;
        server_name domain.com www.domain.com;

        location ~ /assets/img/images/(.*)$ {
                return 301 https://domain.xyz/images/legacy/$1;
        }

        location ~ /frame/(.*)$ {
                return 301 https://domain.xyz/embeded/$1;
        }
}

It is a bit of a chicken-and-egg problem such that there is no real way to say that you don't support TLS/SSL without first supporting TLS/SSL.

So, in order to service the redirect, you still must serve a valid certificate.

Once you obtain a certificate (for example a free one from Let's Encrypt ), you just add this to your first server block:

listen 443 ssl;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM