web-dev-qa-db-fra.com

Comment utiliser l'interface graphique du navigateur Web BitTorrent Sync via ssl

J'ai installé BitTorrent Sync sur mon serveur Ubuntu, mais j'ai remarqué que l'interface graphique n'utilise pas ssl pour la connexion (https://server:8888/gui ne fonctionne pas, cependant http://server:8888/gui utilise). C’est à la fois pour vous connecter et utiliser l’interface utilisateur pendant que vous êtes connecté.

Est-il possible de le forcer à utiliser ssl à la place?

5
lindhe

Moyen facile

Utilisez btsync configuration pour cela, voir ./btsync --dump-sample-config clés de configuration "force_https", "ssl_certificate", "ssl_private_key".

Même si cela semble plus simple, je n'aime pas que l'utilisateur btsync ait accès aux fichiers de certificat. C'est pourquoi je préfère toujours la méthode suivante.

Façon difficile

J'ai trouvé la solution dans cyberciti.biz/faq/howto-linux-unix-setup-nginx-ssl-proxy en utilisant nginx comme serveur proxy. Installé et configuré avec succès sur l’installation de mon serveur Ubuntu.

Les étapes suivantes supposent que vous avez créé des certificats SSL dans le répertoire /etc/nginx/certs/ (ssl.crt et ssl.key).

Installer nginx

Sudo apt-get install nginx

(Facultatif) Désactiver la configuration par défaut

Sudo rm /etc/nginx/sites-enabled/default

Créer une configuration de proxy dans /etc/nginx/sites-available/proxy avec son contenu

server {
    ### server port and name ###
    listen          443;
    ssl             on;
    server_name     your-server-name.com;

    ### SSL log files ###
    access_log      /var/log/nginx/ssl-access.log;
    error_log       /var/log/nginx/ssl-error.log;

    ### SSL cert files ###
    ssl_certificate      /etc/nginx/certs/ssl.crt;
    ssl_certificate_key  /etc/nginx/certs/ssl.key;

    ### Add SSL specific settings here ###

    ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers RC4:HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    keepalive_timeout    60;
    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout  10m;

    ### We want full access to SSL via backend ###
    location / {
            proxy_pass  http://{destination-Host}:{destination-port};

            ### force timeouts if one of backend is died ##
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

            ### Set headers ####
            proxy_set_header        Accept-Encoding   "";
            proxy_set_header        Host            $Host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

            ### Most PHP, Python, Rails, Java App can use this header ###
            #proxy_set_header X-Forwarded-Proto https;##
            #This is better##
            proxy_set_header        X-Forwarded-Proto $scheme;
            add_header              Front-End-Https   on;


            ### By default we don't want to redirect it ####
            proxy_redirect     off;
  }

}

Modifiez les valeurs your-server-name.com, {destination-Host}, {destination-port} et les autres valeurs en conséquence.

Activer la configuration

Sudo ln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabled/proxy  

Redémarrer nginx

Sudo service nginx restart
5
Gedrox