For the record, the best way to run a secure MCWS server right now is to access it only through an encrypted VPN. I'm hoping MCWS can be secured for the future, and redirect all traffic to HTTPS by default (except for old, not-updated clients). But... In the interim, if you need to do it, you're probably best using a VPN rather than doing the reverse proxy thing.
I agree; I currently use a private VPN myself rather than a reverse proxy. My point was that the only current way to wrap MCWS in an https wrapper with no muss and fuss on the user end (i.e. in a way that actually works like visiting a normal https website) is to use a reverse proxy. My current interest in getting working https is to make it easier for my wife and family to use JRiver away from home, as a VPN is a non-starter for her (much less the rest of my family) and I'm not willing to allow unencrypted access as they all use public wifi. I'm currently working out the kinks in a reverse proxy to get them sorted, but would love not to have to maintain one.
A VPN is certainly an easier and more robust solution if you don't need your services to be easily accessible to non-tech savvy family members or on networks that block VPN access (which are more common than I would like, especially in hotels and vacation homes). There are lots of ways to do it if you don't need it to be easy for end users, hell you can reverse tunnel the traffic through ssh if you want to (I've done it in a pinch).
You wouldn't even need to do this. A self-signed certificate would be perfectly adequate to provide security on the MCWS traffic (self-signed certs encrypt the traffic just as well as ones issued by a CA). That would not, of course, provide server identity verification, but since we are running the servers ourselves, this is basically irrelevant.
As you know SSL does two things, a) authentication, and b) encryption. The authentication part allows a client to verify that the server is really the one it claims to be. And the encryption part provides transport level encryption of the data stream. And most browsers show a (black) padlock in the address bar if the data stream is encrypted, plus an additional green indication if the server is also authenticated.
In the context of MC I think the essential part is the encryption. This does require a certificate (actually a public/private key pair), but this certificate does not necessarily need to be authenticated. (A so called self generated / self signed certificate). And the certificate must be "unique" insofar as no outsider may know the private key.
Theoretically JRiver could create and deliver such a certificate for each user of MC. The only requirement is that the certificate must be unique and the certificate distribution process must itself be secure.
When you buy a registered version of MC, you get an MJR file by email. The MJR is unique. So it could be used either a) as a transport key for unlocking an encrypted certificate provided in a separate email by JRiver, or b) as a unique "seed" for locally generating a certificate.
I think the authentication piece is non-trivial if the goal is to improve the out of the box experience for end users. MCWS is not just an endpoint for apps, it's also an endpoint for webgizmo/panel. Using a self signed cert will result in anyone attempting to use webgizmo/panel having their browsers screaming scary warnings about untrusted certs until one adds the cert to their trust store or (browser permitting) adds a permanent exception. This would not be particularly user friendly for non tech savvy family members or guests, but the real killer would be for folks who use webgizmo at work (of which there are a few). My work, for example, won't let us add cert exceptions or navigate through to sites with "fake" certs. I've also had a few android apps complain or fail entirely when I used self-signed certs for various services, but since JRiver controls their own app ecosystem, I expect they could solve that particular issue.
I agree that any support for user-supplied certs at all would be fantastic. That's all I need myself, and I would be 100% happy with a box in options-->media network that let me point JRiver to a cert I supplied. I'm not the target market for auto-config and I suspect you two aren't either.
For non-technical users, auto-generating self-signed certs might be better than nothing, but I think if JRiver is going to do anything by way of autoconfiguration (anything more than just supporting using your own cert), that it's worth considering helping users to get fully "certified" certs or just offer a "fee-for-service" to handle the authentication/match-making for them to avoid replacing one stream of help requests with another one stemming from the shortcomings of untrusted certs. This doesn't necessarily need to involve each end user setting up a FQDN with a trusted cert, as I noted several competing services effectively do their own matchmatching/authentication with their own servers in the middle for a periodic fee.