仅在使用wifi的生产环境中出现ERR_SSL_PROTOCOL_ERROR

时间:2019-09-28 14:30:46

标签: ruby-on-rails ssl nginx actioncable

几天前,我启动了一个新网站,一些用户在其chrome浏览器中收到了这个奇怪的错误: ERR_SSL_PROTOCOL_ERROR

此错误仅对某些用户和某些特殊条件(例如,当他们使用其wifi网络但使用移动数据有效)有效。

我有一个带有puma和nginx的Rails应用程序,所有的http域(www和非www)都重定向到了https,我的ssl证书运行正常。

在导轨中,我有此配置来强制使用ssl和动作电缆

config.action_cable.url = 'wss://example.com/cable'
config.action_cable.allowed_request_origins = ["https://example.com", "https://www.example.com"]
config.force_ssl = true

我在nginx中也有用于动作电缆的配置,http://puma看起来很奇怪,但在大多数情况下都能正常工作

server {

  listen 443 ssl;

  ssl on;
  ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:RSA+3DES:!ADH:!AECDH:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLS 1.3;
  ssl_certificate /etc/ssl/crtbundle.pem;
  ssl_certificate_key /etc/ssl/_.example.com_private_key.key;
  server_name example.es;

...

  location /cable {
    proxy_pass http://puma;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
    proxy_redirect off;
  }

...

}

0 个答案:

没有答案