ssl - 纯 HTTP 请求被发送到 HTTPS 端口 (NGINX)

标签 ssl nginx https debian 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;

ssl_protocols 上,我也尝试只使用 SSLv3 TLSv1 但它是一样的。我的 nginx 版本是 1.2.1。 即使在这里,我也浏览过许多在线网站,但我认为我的问题并没有用不同极客提到的任何这些方法来解决。

所以我终于来了。 有什么建议么?

P.S:我正在使用 cloudflare,但我已经关闭了 Universal SSL,因为我想使用其他 ssl。

最佳答案

您应该编写两个服务器 block ,一个用于 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
}

我已经尝试使用 default nginx 设置,两个端口都工作正常。

关于ssl - 纯 HTTP 请求被发送到 HTTPS 端口 (NGINX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30986980/

相关文章:

python - Azure IoT 中心设备 x509 自签名证书 (Python MQTT)

nginx - Capistrano 3 无权查询此 Phusion Passenger 实例的状态

ssl - HTTPS Web(仅)代理

python - 在文本浏览器中使用 Django 的 https 站点抛出 CSRF 验证失败

facebook - 如何在没有 SSL 证书的情况下制作 Facebook Canvas 应用程序?

使用 Nginx 在 Ghost 博客上进行 SSL 重定向和身份验证

SSL 重新协商失败 - 影响?

Ubuntu 服务器 - HANDSHAKE_FAILURE。如何正确设置证书?

node.js - 如何使用nginx作为s3 aws的代理?

PHP getallheaders 替代方案