nginx配置https证书错误NSS error -5938 (PR_END_OF_FILE_ERROR)

奇葩了,有时候配置https证书的时候,啥都对,就是访问不了。

通过curl来检查:
curl http://www.moneyslow.com -vv
会出现NSS error -5938 (PR_END_OF_FILE_ERROR)的错误。

  • Initializing NSS with certpath: sql:/etc/pki/nssdb
  • CAfile: /etc/pki/tls/certs/ca-bundle.crt
    CApath: none
  • NSS error -5938 (PR_END_OF_FILE_ERROR)
  • Encountered end of file


从网络搜索答案,无非是防火墙443端口,update nss 之类的方法,不解决问题。
细细想了一下,最近http2也出过问题

2018年11月9日,阿里云云盾应急响应中心监测到Nginx近日发布安全更新,披露了三个可能导致服务器拒绝服务的漏洞:CVE-2018-16843、CVE-2018-16844和CVE-2018-16845。位于Nginx HTTP/2 模块和流媒体MP4模块中。攻击者通过构造特定的恶意HTTP请求,可远程DoS服务器。
漏洞详情:http://nginx.org/en/security_advisories.htmlhttp://tengine.taobao.org/changelog_cn.html#2_2_3
CVE-2018-16843、CVE-2018-16844漏洞存在于ngx_http_v2_module模块之中(默认情况下不编译,编译时需要开启--with-http_v2_module,同时将listen http2添加到配置文件中),当用户添加http2支持时,攻击者可以发送特制的HTTP/2请求,消耗CPU和内存资源,最终导致服务器DoS。CVE-2018-16845漏洞存在于ngx_http_mp4_module模块中,当Nginx处理恶意的MP4文件时会导致处理进程无限循环、崩溃或者内存泄露,造成服务器DoS。
影响范围
主线版本:< 1.15.6
稳定版本:< 1.14.1
风险评级
CVE-2018-16843:高危
CVE-2018-16844:高危
CVE-2018-16845:高危
修复建议
注:漏洞修复要求的技术专业度较高,建议先备份服务器镜像再做升级操作
方案一:
升级至Nginx最新安全版本(1.15.6或1.14.1),官方下载链接:http://nginx.org/en/download.html
方案二:
针对CVE-2018-16843和CVE-2018-16844漏洞,可采取禁用HTTP/2协议(可能导致服务不可用),使用到HTTP/2协议的配置类似如下:
server {
listen 443 ssl http2 default_server;
server_name localhost;
ssl_certificate /path/to/public.crt;
ssl_certificate_key /path/to/private.key;
检查Nginx配置文件中是否使用到http2参数,如没有,则不受漏洞影响。
方案三:
针对使用Tengine的建议使用官方最新版本修复漏洞:http://tengine.taobao.org/changelog_cn.html#2_2_3

所以要先试试升级nginx,从1.12 升级 到1.16,一个命令就搞定了:
yum update nginx

果然好了。

京ICP备11047313号-19 彩虹岛电子书