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

Nginx 配置 SSL 出现 ERR_SSL_PROTOCOL_ERROR (已解决)

  •  
  •   pupboss ·
    pupboss · 2016-12-23 17:36:46 +08:00 · 9360 次点击
    这是一个创建于 2891 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个只在 Chrome 下发生, Safari 正常。之前一直没出现过这个问题,最近折腾了 dotdeb 编译的 Nginx + http2 ,因为兼容问题又退回官方的 Stable 版本,就发生了 ERR_SSL_PROTOCOL_ERROR 。

    卸载的时候都用了 purge 命令,完整的卸载,安装的时候也加上了 `DPkg::options::=--force-confmiss --reinstall` 命令,应该和旧文件残留关系不大吧

    解决方案也很奇葩,因为之前配置了 80 端口跳 443 ,只要把 80 端口整个 block 放到下面,立即恢复正常,很奇怪

    参考链接: http://blog.csdn.net/ws_zll/article/details/8486033
    第 1 条附言  ·  2016-12-25 11:08:38 +08:00
    这次主要遇到两个 bug

    1. 标题上那个,解决方案是「只要把 80 端口整个 block 放到 443 下面」
    2. dotdeb Nginx 不兼容安卓的问题,是因为一加的安卓 7 rom ,不支持 ECC 证书,签了一张 RSA 就好了,和别的无关

    感谢大家的回复
    11 条回复    2017-01-13 07:57:39 +08:00
    Showfom
        1
    Showfom  
       2016-12-23 17:43:30 +08:00
    dotdeb 编译的 nginx 1.10.2 没问题啊 你遇到什么兼容问题了?
    pupboss
        2
    pupboss  
    OP
       2016-12-23 18:33:51 +08:00
    @Showfom Nginx 做了一个反代,反代到 Node 的应用,纯 JSON 的 API 接口,总有安卓用户抱怨说网络连接失败,但是浏览器是能访问的。。。

    然后我用谷歌亲儿子系列,测过安卓 5 6 7 ,都正常,感觉是他们手机厂商自己 rom 的坑,但是切换回官方 Nginx ,又正常了。目测和 http2 ,或者 SSL 握手相关的方面有关, ciphers 的配置也都是正常配置,所以这个问题就很莫名其妙了😂

    曾经还出现过一个问题就是,自己编译主线版的 Nginx ,开启 http2 , CT , ChaCha20 等等,安卓手机很大机率超时,后来换成官方源的 stable 之后正常了,具体可参考 https://github.com/pupboss/LNTUOnline-API-Nodejs/issues/11

    建议大家在生产环境下,还是用 stable 版本吧...坑能少一点
    Showfom
        3
    Showfom  
       2016-12-23 18:36:43 +08:00
    @pupboss 哦 旧的安卓吧 那些用户我直接放弃了 你还照顾他们干嘛
    pupboss
        4
    pupboss  
    OP
       2016-12-23 18:43:25 +08:00
    @Showfom 其实不算旧....而且是近期一加手机发布的内测版安卓 7 ,连不上,才这么折腾的。。不过好像兽兽做的业务不会遇到这种情况

    我也不折腾了,就先让他稳定的跑着吧
    lhbc
        5
    lhbc  
       2016-12-23 19:10:03 +08:00
    nginx mainline+OpenSSL
    一天跑几千万请求,都没见出现什么问题
    Showfom
        6
    Showfom  
       2016-12-23 21:56:34 +08:00
    @pupboss - - 估计是一加自己的锅
    DrenA
        7
    DrenA  
       2016-12-25 10:45:53 +08:00
    肯定是加密方式相关的啦,这个东西多如牛毛,而且部分新协议有安全漏洞,只能用老的,可以用 https://www.ssllabs.com/ssltest/index.html 这个测一下安全性和兼容性
    pupboss
        8
    pupboss  
    OP
       2016-12-25 11:05:44 +08:00
    @DrenA 啊哈,昨天终于发现了问题,一加的安卓 7 rom ,不支持 ECC 证书,签了一张 RSA ,瞬间就好了
    Faratv2
        9
    Faratv2  
       2017-01-13 00:19:15 +08:00
    let's encrypt 证书刚过期,更新后,出现和你一样的错误提示。

    chrome,safari 下无法访问, firefox 和 IE 又可以访问

    :sad:
    pupboss
        10
    pupboss  
    OP
       2017-01-13 01:11:26 +08:00 via iPhone
    @Faratv2 要不你也试试把监听 80 端口的 block 放到 443 下面
    Faratv2
        11
    Faratv2  
       2017-01-13 07:57:39 +08:00 via iPhone
    @pupboss 我的 80 部分,就是在 443 下面。感觉是证书问题,暂时还没解决……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2739 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:40 · PVG 20:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.