随机SSL握手失败

我在客户端看到一些奇怪的SSL握手失败。 我们有自定义的web js应用程序,只能通过浏览器访问较旧的Webkit(如在Epiphany中find)。 来自客户端的所有请求都来自同一浏览器(版本和types)。

这是症状:

a。)客户端浏览器显示SSL握手失败:

  • 如果网页重新加载,错误仍然存​​在
  • 如果浏览器会话被终止并且新会话被加载,则错误消失

b。)在nginx错误,syslog或openssl日志中找不到SSL错误

c)在tcp转储我看到一些奇怪的偶尔SSL握手错误:

  • 列出项目错误的证书状态响应
  • 没有证书
  • 内部错误

d。)我们正在使用让我们encryptionSSL证书

e。)nginx.conf:

  • ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #删除SSLv3,ref:POODLE
  • ssl_prefer_server_ciphers;

  • nginx充当代理,将所有httpstream量redirect到https

  • 网站启用:

服务器{

listen 80; server_name srv_name; return 301 https://$host$request_uri; 

}

服务器{

  listen 443; server_name srv_name; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; ssl on; ssl_certificate fullchain.pem_path; ssl_certificate_key privkey.pem_path; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; location /robots.txt { alias /opt/robots.txt; } location /.well-known/ { alias /usr/share/nginx/html/.well-known/; } location / { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_pass http://localhost:8000/; break; } 

}

f。)基本stream程:

  • 客户端浏览器打开http url并获得301redirect到https
  • js应用程序进行周期性的ajax调用(我怀疑由于HTTP响应代码等于0,那么由于SSL握手失败,这些调用也会随机失败)
  • 如果ajax调用返回http响应码0,则页面被重载(location.reload()),通常导致客户端浏览器中的SSL握手失败消息。

g)在迁移到新的服务器(从Ubuntu 14.04 lts(openssl 1.0.1f 6 Jan 2014)到Ubuntu 16.04 lts(1.0.2g 2016年3月1日))之后,事情就开始发生了。应用程序和客户端浏览器版本保持不变。

你有什么想法在哪里看下? 为什么客户端打开url时总是出现这种情况,而且是非常零散的。