V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
Itanium
V2EX  ›  NGINX

Nginx client timed out while SSL handshaking 问题

  •  
  •   Itanium · 2018-03-16 14:24:21 +08:00 · 3790 次点击
    这是一个创建于 2445 天前的主题,其中的信息可能已经有所发展或是发生改变。
    2018/03/16 13:29:25 [info] 24306#24306: *3 client timed out (110: Connection timed out) while SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443
    

    在 nginx 的错误日志里看到这个报错,奇怪的是 nginx 的 log level 显示这是个 [info] 级别的。按理说这应该是一个 [error]。 然而我在某些 IP 下无法访问网站,我用代理就能连上,但是在多数网络下测试直连是可以连上的。 我测试过应该和后端无关,即使只是静态页面也是这样。

    nginx 的 ssl 配置:

    server {
        listen *:443 ssl http2;
        listen [::]:443 ssl http2;
        server_name xxx.com;
    
        ssl on;
        ssl_certificate /ssl/letsencrypt/chained.pem;
        ssl_certificate_key /ssl/letsencrypt/domain.key;
        ssl_dhparam /ssl/letsencrypt/dhparams.pem;
        ssl_trusted_certificate /ssl/letsencrypt/full_chained.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_session_cache shared:SSL:50m;
        ssl_session_timeout 1d;
        ssl_session_tickets off;
        ssl_prefer_server_ciphers on;
        # ssl_stapling on;
        # ssl_stapling_verify on;
    }
    

    后来即使我只保留

        ssl_certificate /ssl/letsencrypt/chained.pem;
        ssl_certificate_key /ssl/letsencrypt/domain.key;
    

    这几个必要配置也不行 证书是 letsencrypt 的证书,服务器上有多个 https 站点

    求从报错分析可能出现这个异常的原因,或者提供一些 debug 排错的思路,谢谢

    2 条回复    2018-03-28 15:49:31 +08:00
    hsyan2008
        1
    hsyan2008  
       2018-03-28 10:38:21 +08:00
    找到解决方法了吗,我也碰到这个问题,很诡异啊
    Itanium
        2
    Itanium  
    OP
       2018-03-28 15:49:31 +08:00
    @hsyan2008
    搜遍网路都没有完全解决,一开始以为是 SNI 的问题,但是确认了 Nginx 版本是绝对支持 SNI 的,客户端也支持( Chrome 65 ),而且换 Safari 和 Waterfox 都一样。
    这个问题奇怪在只有某固定 IP 是这样的,换个 IP 在同样的环境下就一切正常,而且确定了 IP 没被墙,HTTP 是可以访问的,HTTPS 不行,所以实在搞不懂了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1619 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:45 · PVG 00:45 · LAX 08:45 · JFK 11:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.