MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Activating HTTPS causes black screen

    Scheduled Pinned Locked Moved Troubleshooting
    10 Posts 5 Posters 1.3k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • nzrunnerN Offline
      nzrunner
      last edited by

      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 useHttps to false, MagicMirroir runs perfectly again, but obviously only using HTTP.

      Any ideas why activating HTTPS causes a black screen?

      S 1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil @nzrunner
        last edited by

        @nzrunner

        And dropped them into a folder that MagicMirror can access

        U mean the ~/MagicMirror/ssl folder?
        Cause that is what your config said

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        1 Reply Last reply Reply Quote 0
        • nzrunnerN Offline
          nzrunner
          last edited by

          Yes. I created a folder under MagicMirror called ssl for the certs

          1 Reply Last reply Reply Quote 0
          • karsten13K Offline
            karsten13
            last edited by karsten13

            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 develop branch where this is already included or
            • patch the electron.js as described here
            S 1 Reply Last reply Reply Quote 0
            • S Offline
              sdetweil @karsten13
              last edited by

              @karsten13 the changelog says it should work

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              nzrunnerN 1 Reply Last reply Reply Quote 0
              • nzrunnerN Offline
                nzrunner @sdetweil
                last edited by nzrunner

                @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 ;-)

                S 1 Reply Last reply Reply Quote 0
                • S Offline
                  sdetweil @nzrunner
                  last edited by

                  @nzrunner July 1, every 3 months a new release

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  R 1 Reply Last reply Reply Quote 0
                  • R Offline
                    rafhtl @sdetweil
                    last edited by

                    @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

                    B 1 Reply Last reply Reply Quote 0
                    • B Offline
                      br4tt3 @rafhtl
                      last edited by

                      @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!

                      karsten13K 1 Reply Last reply Reply Quote 0
                      • karsten13K Offline
                        karsten13 @br4tt3
                        last edited by

                        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); in js/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 prefix in the following lines to https in the else section or put tls: true, in the config.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.

                        1 Reply Last reply Reply Quote 0
                        • 1 / 1
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy