普通的HTTP请求被发送到HTTPS端口(NGINX)

nix*_*nix 1 ssl https debian nginx cloudflare

首先,我的问题是不同的.

我已经使用listen 443 default ssl;listen 443 ssl;和注释掉#,但似乎没有什么工作.端口80工作正常但在端口443上我收到此错误.

目前这是nginx的默认文件.

    server {
    listen   80;
    listen   443 ssl;
   #listen   443 default ssl;
    server_name  .******.org;
    keepalive_timeout    70;

   #ssl  on;
    ssl_certificate   /etc/ssl/private/lol/www.*******.crt;
    ssl_certificate_key   /etc/ssl/private/lol/www.********.key;
    ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers          RC4:HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
Run Code Online (Sandbox Code Playgroud)

ssl_protocols我也尝试只使用SSLv3 TLSv1但相同.我的nginx版本是1.2.1.我在这里经历了很多在线网站,但我认为我的问题并没有被不同极客提到的任何方法解决.

所以最后我在这里.有什么建议?

PS:我正在使用cloudflare,但我已经将Universal SSL关闭,因为我想使用其他ssl.

Obs*_*eek 5

您应该为http编写两个服务器块,为https编写一个服务器块:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/public/;
    index index.html;
    #other settings
}

server {
    listen 443;
    server_name localhost;

    root /var/www/public/test/;
    index index.html;

    ssl on;
    ssl_certificate /etc/nginx/certs/wss.pem;
    ssl_certificate_key /etc/nginx/certs/wss.pem;
    #other settings
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了defaultnginx设置,两个端口工作正常.