如何在Nginx中将每个https请求redirect到http?

这个问题已经被StackOverflow问过很多次,但是我的问题有点不同:

我有多个子域网站:

  • http://www.example.com
  • http://my.example.com
  • https://admin.example.com
  • http://client.example.com

正如你所看到的,只有pipe理员通过https服务。

我成功地在Nginx中创build了所有的虚拟主机,并且运行良好。

但现在,我想通过https将所有尝试访问其他子网站的客户端redirect到http:

  • https://www.example.com =>redirect到http://www.example.com
  • https://my.example.com =>redirect到http://my.example.com
  • https://client.example.com =>redirect到http://client.example.com

=>只有pipe理员相反。

我的第一个想法是设置每个https域的redirect:

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

并为每个子域(www,我的和客户端)做了这个。

但是这不起作用,我的浏览器出现SSL错误(SSLlogging太长)。

我怎样才能做到这一点?

谢谢你的帮助!

你需要在服务器中包含nginx的所有ssl文件。

你至less需要

  ssl on; ssl_certificate /etc/ssl/domain.com.crt; ssl_certificate_key /etc/ssl/domain.com.key;