Rocket.chat: Cant change language when ssl is active

Created on 13 Feb 2017  路  12Comments  路  Source: RocketChat/Rocket.Chat

Try to change language in admin from default, to Swedish but nothing change, if i commet out the ssl part in Nginx and for http i got the swedish language.

In the Iphone app i always got the swedish language, ssl or not.

Rocket.Chat Version: 0.51.0
Running Instances: 1
DB Replicaset OpLog: Disabled
Node Version: 4.7.1

i18n support

All 12 comments

@MartinSchoeler can you try to reproduce the error on our cloud?

I got Nginx as reverse proxy for the Rocket.Chat - If I go by the address - https://pressbordet.orebrotribune.org/ the swedish language don't load, but if i go by the address http://orebrotribune.org:3000 the Swedish language is there.

Here is my config from Nginx

Upstreams

upstream backend {
    server 127.0.0.1:3000;
}

server {
   listen 80;
   server_name pressbordet.orebrotribune.org;
   return 301 https://$server_name$request_uri;
}

HTTPS Server

server {
    listen 443;
    server_name pressbordet.orebrotribune.org;

    error_log /var/log/nginx/rocketchat.access.log;

    ssl on;
        ssl_certificate /etc/letsencrypt/live/pressbordet.orebrotribune.org/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/pressbordet.orebrotribune.org/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # dont use SSLv3 ref: POODLE

    location / {
        proxy_pass http://backend/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

@ErikXXon Your nginx is not able to serve this file: https://pressbordet.orebrotribune.org/tap-i18n/sv.json. It works for our deploys as you can see in here: https://demo.rocket.chat/tap-i18n/sv.json.

I believe this is a problem with your proxy_set_header settings (try the X-Forward-Proto set to https).

Please also check our nginx configuration file:

server {
    listen 443 default_server;
    listen [::]:443 default_server ipv6only=on;
    server_name demo.rocket.chat;
    root /var/www/rocket.chat/bundle/programs/web.browser/app/;

    ssl on;
    ssl_ciphers         'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    ssl_dhparam         /etc/nginx/dhparams.pem;

    ssl_certificate     /var/www/rocket.chat/ssl/__rocket_chat/__rocket_chat.crt;
    ssl_certificate_key /var/www/rocket.chat/ssl/__rocket_chat/__rocket_chat.key;

    client_max_body_size 32m;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_read_timeout 600;
    proxy_send_timeout 600;
    proxy_set_header   Host              $host:$server_port;
    proxy_set_header   Referer           $http_referer;
    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 https;
    proxy_set_header   Upgrade           $http_upgrade;
    proxy_set_header   Connection        "upgrade";
    proxy_set_header   X-Nginx-Proxy     true;
    proxy_redirect     off;

    location /fonts/ {
        add_header     Access-Control-Allow-Origin *;
        try_files      $uri @rocketchat;
    }
    location /images/ {
        add_header     Access-Control-Allow-Origin *;
        try_files      $uri @rocketchat;
    }
    location /sounds/ {
        add_header     Access-Control-Allow-Origin *;
        try_files      $uri @rocketchat;
    }
    location / {
        proxy_pass     http://demo.rocket.chat;
    }
    location @rocketchat {
        proxy_pass     http://demo.rocket.chat;
    }
}

I'm having the same problem on a freshly installed rocketchat, with a nginx reverse proxy.
emm
Adding the X-Forward-Proto header didn't help.

I added all headers described on the config, and it didn't change.
This is my nginx config:

server {
    listen      80;
    server_name rocket.agucova.me;
    rewrite     ^   https://$server_name$request_uri? permanent;
}
# HTTPS - proxy requests on to RocketChat
server {
        listen 443;
        server_name rocket.agucova.me;

        ssl on;
        # Use certificate and key provided by Let's Encrypt:
        ssl_certificate /etc/letsencrypt/live/rocket.agucova.me/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/rocket.agucova.me/privkey.pem;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

        # Pass requests for / to localhost:3000:
        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-NginX-Proxy true;
                proxy_pass http://localhost:3000/;
                proxy_ssl_session_reuse off;
                proxy_set_header Host $http_host;
                proxy_cache_bypass $http_upgrade;
                proxy_redirect off;
                proxy_set_header   X-Forwarded-Proto https;
                proxy_set_header   Host              $host:$server_port;
                proxy_set_header   Referer           $http_referer;
                proxy_set_header   X-Real-IP         $remote_addr;
                proxy_set_header   X-Forwarded-Proto https;
                proxy_set_header   Upgrade           $http_upgrade;
                proxy_set_header   Connection        "upgrade";
        }
}

I have tried to change - It will only work for me i i dont drive reversed proxy and ssl :(

Solved it!
I did an upgrade on Nginxserver, and that fix the problem.

I'm still having the same problem, no updates available for nginx.

@marceloschmidt maybe it is related to the nginx config?

@agucova Yes, that is most likely related to your nginx config. Check if you can reach the language files through your browser (https://github.com/RocketChat/Rocket.Chat/issues/6001#issuecomment-279481148). If you can't, you have to find out what is stopping your from doing it; try checking nginx access and error logs.

This is very weird. I'm able to get the language files (json) via curl with a nice 200 http code. But when it comes to chrome, it keeps loading until a 504 gateway error appears. Same with other browsers. I tried copying the request headers made by chrome to cURL and it works too.
The nginx logs are empty (both).

As a note, I was unable to found errors fetching any file when using Rocket Chat...

Was this page helpful?
0 / 5 - 0 ratings

Related issues

neha1deshmukh picture neha1deshmukh  路  3Comments

sta-szek picture sta-szek  路  3Comments

Buzzele picture Buzzele  路  3Comments

antn89 picture antn89  路  3Comments

Buzzele picture Buzzele  路  3Comments