我想在我的 nginx Web 服务器中将所有 HTTPS 请求重定向到 HTTP。我曾尝试过以下方法:
server {
listen 443;
server_name my.site.com;
rewrite ^(.*) http://$host$1 permanent;
}
但每当我尝试点击时,https://my.site.com
我的浏览器中都会出现以下错误:
无法与服务器建立安全连接。这可能是服务器的问题,或者它可能需要您没有的客户端身份验证证书。错误代码: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"
但不知道它们是什么意思……我的服务器上没有安装任何证书,这可能导致问题吗?如果不是,有人能看出我做错了什么吗?
答案1
是的,您需要 SSL 证书。
由于您使用 https 进行连接,因此浏览器需要证书;除非您连接到网址://my.site.com:443 而不是https://我的.site.com。
您可以对其进行自我签名,但在最终将您重定向到 http 网站之前,大多数(所有)浏览器仍会发出警告。