Read the statement by Michael Teeuw here.
Activating HTTPS causes black screen
-
I am running Magic Mirror 2.11.0 on a Pi 4. Runs beautifully. Really impressed.
Now, I am trying to configure it so it uses HTTPS. I have obtained the required .key and .crt files, and dropped them into a folder that MagicMirror can access.
When I change config.js to be as follows, I get a black screen: -
useHttps: true, httpsPrivateKey: "ssl/mirror.key", httpsCertificate: "ssl/mirror.crt",By returning
useHttpsto false, MagicMirroir runs perfectly again, but obviously only using HTTP.Any ideas why activating HTTPS causes a black screen?
-
And dropped them into a folder that MagicMirror can access
U mean the ~/MagicMirror/ssl folder?
Cause that is what your config said -
Yes. I created a folder under MagicMirror called ssl for the certs
-
AFAIK this is not possible in the current release, but in the upcoming v2.12.0.
So you
- can wait until 1.7.2020 or
- use the
developbranch where this is already included or - patch the electron.js as described here
-
@karsten13 the changelog says it should work
-
@sdetweil said in Activating HTTPS causes black screen:
@karsten13 the changelog says it should work
I had read the Changelog as well, and noticed the following entry: -
- Add HTTPS support and update config.js.sample
@karsten13 I am happy to wait for the v2.12.0 release. 1st July isn’t that far away ;-)
-
@nzrunner July 1, every 3 months a new release
-
@sdetweil
Hi Sam
just wanted to tell you that I am using devel and https works fine
BUT
it took me some time to understand this:
in js/electron.js
in line
18
should be
app.commandLine.appendSwitch(“autoplay-policy”, ‘true’);
app.commandLine.appendSwitch(“no-user-gesture-required”, ‘true’);
app.commandLine.appendSwitch(“disable-site-isolation-trials”, ‘true’);
app.commandLine.appendSwitch(“ignore-certificate-errors”, ‘true’);
app.commandLine.appendSwitch(‘allow-insecure-localhost’, ‘true’);and ofcourse in config also add tls: true
let me know if this turns out to be correct
as soon as I did this it started working
thanks
r -
@rafhtl - could you elaborate on the part of the tls: true in the config file? I cant seem to find any reference to that specific config param. I added the changes that you mention in the electron.js file - with the same result as previously, pitch black screen as soon as i am running on https.
checking the “output” from a remote connection (e.g remote control module) it works over htpps - but for the physical screen its pitch black!
thanks!
-
There are 2 use cases for which was https implemented:
- serveronly
- clientonly
This use case with output from the pi on the screen and accessing the mm url’s with https was never implemented.
The above hack from @rafhtl seems not to work with the current electron version.
You can get it working if you put the following lines under the line with
mainWindow = new BrowserWindow(electronOptions);injs/electron.js:mainWindow.webContents.session.setCertificateVerifyProc((request, callback) => { callback(0); //this means trust this domain })And electron must use https so you have to change the
prefixin the following lines tohttpsin theelsesection or puttls: true,in theconfig.js.I’m interested in this usecase because I see nothing what could be protected with https. Everybody who knows your url e.g. https://192.168.0.33:8080/ has full access to your config calling https://192.168.0.33:8080/config/ and can see all your secrets, so I would never run MM in public without protection.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login