我想在我的nginx web服务器中将所有HTTPS请求redirect到HTTP。 我通过了以下做法:
server { listen 443; server_name my.site.com; rewrite ^(.*) http://$host$1 permanent; }
但任何时候我尝试打https://my.site.com我在我的浏览器中出现以下错误:
无法与服务器build立安全连接。 这可能是服务器的问题,或者可能需要您没有的客户端身份validation证书。 错误代码:ERR_SSL_PROTOCOL_ERROR
我检查了nginx日志,发现下列条目:
T="2013-09-27T22:41:05+00:00" IP=108.166.113.99 USR=- RQ="GET / HTTP/1.1" ST=200 BB=6237 MS=0.000 REF="-" UA="python-requests/0.13.6 CPython/2.7.3 Linux/3.2.0-24-virtual" T="2013-09-27T22:41:05+00:00" IP=108.166.113.99 USR=- RQ="GET / HTTP/1.1" ST=301 BB=184 MS=0.000 REF="-" UA="python-requests/0.13.6 CPython/2.7.3 Linux/3.2.0-24-virtual" T="2013-09-27T22:41:05+00:00" IP=108.166.113.99 USR=- RQ="GET / HTTP/1.1" ST=200 BB=6237 MS=0.000 REF="-" UA="python-requests/0.13.6 CPython/2.7.3 Linux/3.2.0-24-virtual" T="2013-09-27T22:41:05+00:00" IP=108.166.113.99 USR=- RQ="GET /sitemap.xml HTTP/1.1" ST=200 BB=3965 MS=0.000 REF="-" UA="python-requests/0.13.6 CPython/2.7.3 Linux/3.2.0-24-virtual"
但不知道他们是什么意思….有没有可能,我没有任何证书安装在我的服务器可能会导致问题? 如果没有,任何人都可以看到我做错了什么?
是的,你需要一个SSL证书。
浏览器需要使用https连接的证书; 除非你连接到http://my.site.com:443而不是https://my.site.com 。
您可以自行签名,但在最终将您redirect到http网站之前,大多数(所有)浏览器都会发出警告。