SSL Configuration for screen sharing

Hi all,

I’m using licode in my project and I need to implement screen sharing
feature.
For screen sharing page must be opened via https and all XHR requests
should be done via https too.
I’m tried to enable SSL for Erizo controller in licode_config.js:

config.erizoController.port = 443; //default value: 8080
// Use true if clients communicate with erizoController over SSL
config.erizoController.ssl = true; //default value: false

and perform commands:
killall node // I believe that this command restarts all licode services
licode/scripts/initLicode.sh

After that I can successfully receive token (and this token contains
address with 443 port ), but it seems that there is no https application on
443.

In another thread I found solution with proxying all request from 443 to
8080 port and it works, but is seems as workaround.

Is there another way to use SSL in erizo controller?

The erizo controller is currently hard coded to serve over HTTP on port
8080. This is done at the erizoController.js file
https://github.com/ging/licode/blob/master/erizo_controller/erizoController/erizoController.js,
specifically the following lines:

var http = require(‘http’);
var server = http.createServer();

… bunch of global config and logging setup stuff …

server.listen(8080);

It’s interesting to note that the erizo controller doesn’t use the config
values AT ALL to setup the listener. Those config values are only used to
tell a client where to connect to the erizo controller, so without some
magic it’s easy to put Licode in a state where clients are trying to access
the controller at the wrong place. That’s why you need to setup a proxy to
listen for https on port 443, and forward it to where the erizo controller
is actually hard-coded to listen: HTTP on port 8080.

We tried modifying the erizoController.js file itself to listen on http or
https on the specified port (depending on the config values provided). This
worked fine, but we didn’t want to diverge (and then have to maintain a
divergence) from the current master branch, so we opted to continue with
the proxy solution.

I believe someone has previously suggested patching this file with a fix
for this. There are a few details that would need to be worked out (mainly
where the cert and key files would come from which should probably be two
more config values in the erizoController section). It’s a pretty simple
change overall though, and would be nice to see.

I’ll try to piece together and improve our erizoController modification and
setup a pull request so maybe it can get seen by the repo maintainers.