How do I get https web interface in Transmission?

I use Transmission's Web Interface, but I don't feel comfortable using it remotely (outside of LAN, e.g., from a friend's house) due to the lack of any sort of encryption. The idea of broadcasting my Transmission Web Interface login details, wholly unencrypted, across the internet just doesn't appeal to me for some reason. (I'm kinda paranoid about that. I even installed a browser plugin to enable HTTPS on any site possible.)

I've heard of, and even attempted, a few of the convoluted tutorials involving lighttpd, but I haven't had any luck so far.

I just want to be able to use some sort of encryption for the Web Interface, so I can manage my torrents remotely. What do I need to do?

-
You need other software to do this for you (like stunnel or lighttpd). You can do it alot easier if you install/use ssh and tunnel to your machine. –  Rinzwind Oct 13 '12 at 19:03

I would recommend to install a simple web server such as nginx and make it proxy to port 8080, which would allow you to add authentication, SSL and other servers in the future if you would so please.

To configure nginx to forward things to 8080 you can write this in the /etc/nginx/sites-enabled/default file:

location / {
proxy_pass        http://localhost:8080;
}


Keep in mind, that this will work only for the web interface and not if you want your torrent port to be 80.

To add SSL support you need to create a key and a signed certificate (I assume you don't want to have it signed by a CA, so here's how to self sign it):

openssl req -x509 -nodes -new -keyout <name>.key -out <name>.crt


The default server config file (same one as above) should have this contents:

server {
listen 443 default_server ssl;
ssl_certificate     /etc/nginx/test.crt;
ssl_certificate_key /etc/nginx/test.key;
server_name  default;

access_log  /var/log/nginx/localhost.access.log;

location / {
proxy_pass        http://localhost:8080;
}

error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /var/www/nginx-default;
}
}


You need to match the key and certificates locations to the ones you just created, and in your browser you will get an untrusted warning unless you import your certificate (or pay for a commercial one).

After making those changes in the config you should run:

sudo reload nginx


or

sudo /etc/init.d/nginx reload

-
Okay, I've never used nginx before. Can you walk me through this? So far what I've done: 1. Set Transmission back to port 8080. 2. sudo apt-get install nginx. What next? Please give me a detailed walkthrough. I'll read it in the morning, so no need to rush it. Just please make it thorough. –  JamesTheAwesomeDude Dec 6 '12 at 6:59
I wrote exact code segments of what you need to run and what you need to add to the configuration file, it would be difficult to be more specific considering I don't know how your system is installed. I clarified a bit. –  David Kohen Dec 6 '12 at 10:08
Okay, I can't even get nginx to start up with an initial test run: it just spews out a bunch of errors, then exits. I've never, ever dealt with this program before, so I'll ned a walkthrough as to what, exactly, I need to to, starting after the installation. –  JamesTheAwesomeDude Dec 6 '12 at 18:44
Could you paste a link to your config file via pastebin or something? –  David Kohen Dec 8 '12 at 11:59
I just left it at the default settings because I wasn't sure where, exactly, to insert that code you gave me. pastebin.com/UWeziN9J –  JamesTheAwesomeDude Dec 8 '12 at 15:57

There is a command line interface for transmission called transmission-remote-cli that you can use after you ssh into your server. This is what I use. Works like a charm. I'm sure easier https sollutions will come up in the future if you're not up to configuring a proxy.

-

Tunneling with SSH is, of course, one possibility, but maybe an easier solution -- easier to set up and easier to carry around on a stick -- is to use an ssh client (putty if you are on Windows, for example), log in to your machine and use a text browser (w3m, links).

That way, you need not even to open up your ports to anything but the local machine.

This may not provide a perfect graphical interface for browsing, but it sure is sufficient for many administrative tasks; in fact, I find it often more convenient to use even if I can use my regular browser for it.

-
Wait... so what do I need to do? I'm kind of confused. ...do I need to get a whole new torrent client? I just need something that's easy to use, supports encryption, and can be used without any additional software on the "client" computer. (e.g., friend's computer.) –  JamesTheAwesomeDude Oct 13 '12 at 22:11