【问题标题】:TLS connection refused with nothing on logsTLS 连接被拒绝,日志中没有任何内容
【发布时间】:2018-09-16 19:30:43
【问题描述】:

过去几个小时我一直在尝试安装 SSL 证书,但没有成功。 nginx 日志上没有错误,但每次我尝试通过 https 访问我的网站时,我都会收到连接被拒绝。

我已经尝试了所有可以在 Google 和 SO 结果中找到的内容:

  • 我已禁用 Ubuntu 防火墙
  • 我已经运行了 netstat 并且在端口 443 上有一个主动监听
  • 我已验证证书、私钥和证书请求的 sha256 校验和
  • 服务 nginx 重启 + 服务 nginx 状态显示一切正常

我觉得我在 nginx(并不多)和 Linux 方面的经验已经到了极限,所以我向 SO 寻求帮助。

这是我的 nginx.conf 的编辑副本,它将请求代理到 Node.JS 服务器:

server {
    listen my.ip.address:80;

    listen my.ip.address:443 ssl;

    ssl_certificate /etc/ssl/my-server.com.crt;
    ssl_certificate_key /etc/ssl/my-server.com.key;

    server_name my-server.com;

    client_max_body_size 700m;

    root "/var/www/my-website/";
    access_log "/var/www/my-website/logs/access_log";
    error_log "/var/www/my-website/logs/error_log";

    location / {
        proxy_connect_timeout 300s;
        proxy_send_timeout   600;
        proxy_read_timeout   600;
        proxy_buffer_size    64k;
        proxy_buffers     16 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        proxy_pass_header Set-Cookie;
        proxy_redirect     off;
        proxy_hide_header  Vary;
        proxy_set_header   Accept-Encoding '';

        proxy_pass http://my.ip.address:8080;
        proxy_set_header Host             $host;
        proxy_set_header X-Real-IP        $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-Accel-Internal /internal-nginx-static-location;
        proxy_no_cache $arg_aid;        
        access_log off;
    }

    location /internal-nginx-static-location/ {
        alias /var/www/my-website/;
        add_header Cache-Control no-cache;
        add_header X-Powered-By nginx;
        internal;
    }
}

我在 Ubuntu 16.04.3 LTS 上运行 nginx 1.10.3

【问题讨论】:

标签: linux ubuntu ssl nginx


【解决方案1】:

“连接被拒绝”表示在您尝试连接的目标 IP 和端口上没有任何东西在监听。

它与 HTTPS、TLS、SSL 或任何证书无关。

【讨论】:

  • 可能没有监听,或者可能是路径中的防火墙,带有REJECT 规则。
  • 如 OP 中所述,netstat 显示在端口 443 上有监听。此外,Ubuntu 防火墙已禁用
【解决方案2】:

在“ssl_certificate xxx”行之前添加以下行并尝试

ssl 开启;

更新:

你能试试这个简单的配置吗?

upstream myapp {
    server http://my.ip.address:8080;
}


server {
    listen 443;
    server_name mywebsite;
    access_log  /var/log/nginx/app_access.log  main;
    error_log  /var/log/nginx/app_error.log;

    ssl    on;
    ssl_certificate /etc/ssl/certs/nginx.crt;
    ssl_certificate_key /etc/ssl/certs/nginx.key;

    location / {
      proxy_pass http://myapp;
    }
}

【讨论】:

  • 也试过了,这是我以前的配置,据我所见,已弃用。 1.10.* 版本的建议是到listen my.ip:port ssl
  • 我已经更新了答案,如果您发现任何错误,请您尝试检查日志。
【解决方案3】:

问题是由 nginx /sites-enabled 文件夹上的 nano .conf.save 备份引起的,该文件夹具有错误配置的 https 服务器声明 - 我不知道 nginx 加载了 .conf 以外的文件。

【讨论】:

    猜你喜欢
    • 2017-03-31
    • 2017-08-08
    • 2021-04-12
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多