Hallo Marten, thanks for your additionl reply !
There are two reasons why I have to use a secure websocket: 1.) In some cases our website connects to our app not on localhost but some other place on the LAN. 2.) Our site is part of a CMS-based project which per default runs with SSL. Changing the specific sites to no-SSL (http) and the corresponding ws leades to mixed content often ignored by the browser. In fact in our current workaroud we redirect to http and run a non-secure ws but this fails for some browsers and especially in context with 1) it fails completely - so I believe there is no other choice than using SSL-Websockets and I am happy that theoretically there is a way to do achieve this is a user-friendly way. However, I am still struggeling. So far this tutorial looked promising: https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/ but for now the localhost wss failed again. If you have another hint please let me know - I won't give up ;-) Best Alex -- http://www.carot.de Email : alexan...@carot.de Tel.: +49 (0)177 5719797 > Gesendet: Montag, 27. Juli 2020 um 15:45 Uhr > Von: "Mårten Nordheim" <marten.nordh...@qt.io> > An: "Alexander Carôt" <alexander_ca...@gmx.net>, "Thiago Macieira" > <thiago.macie...@intel.com> > Cc: "Paul Pfützenreuter" <paul.pfuetzenreu...@gmx.de>, > "interest@qt-project.org" <interest@qt-project.org> > Betreff: Re: [Interest] wss:// on localhost > > Hello Alexander, > > I don't know (or recall) what your setup is like. The following answer > assumes the website you refer to also runs on the local machine: > > Somewhat going in the other direction I'd say wss/https is not necessary if > your application actually only listens to localhost (127.0.0.1/[::1]). > It won't travel across the network at that point, and if the local machine is > compromised encryption doesn't matter much. > > If you are listening to other addresses as well though (to let other clients > in the network connect as well) then you need to generate certificates > that includes the hostname or IP of the machine running the server since > "localhost" is no longer enough/correct for that. > > However if the website is remote and you run attempt to connect to a > websocket on the local machine then it needs to be encrypted and Thiago's > suggestion will get you most of the way. You will also need to get the OS to > trust the certificate for the browser to accept it as well. Usually with > untrusted certificates browsers will show a warning and let you ignore it, > but that doesn't happen in most browsers when opening a websocket > connection in the background! > > Mårten > > ________________________________________ > From: Interest <interest-boun...@qt-project.org> on behalf of Alexander Carôt > <alexander_ca...@gmx.net> > Sent: Tuesday, July 21, 2020 19:32 > To: Thiago Macieira > Cc: Paul Pfützenreuter; interest@qt-project.org > Subject: Re: [Interest] wss:// on localhost > > Hej Thiago, > > > Whether they work or not is irrelevant, since you shouldn't be shipping the > > same certificate to all users. You'd have to make it extremely long-lived > > (expiry 20 years from now). Generating a short-lived one (3 months) limits > > the > > damage if it somehow gets misused. > > > just to avoid misunderstandings: The goal is not sending existing > certificates as part of the application download but rather generate the > certificte automatically upon launching the app ? > > > > There are lots of examples on the Internet on how to do this with the > > openssl > > command. You'll have to find out how to do it with the API, if you don't > > want > > to ship the command. > > > If my assumption above is right then any kind of automized process would be > fine to me - e.g. running the openssl command as part of a script, which is > executed before launching the application or probably generate the > certificate within the app code which would be even more convenient. > > Is this somehow the right track or am I completely mistaken ? Sorry again - > completely new in the domain of security ;-) > > Best > > Alex > > > > > > > > > > > 1) create a private/public key pair (usually RSA, but doesn't need to be). > > Creating a private key usually involves random number, so please be sure > > that > > OpenSSL's random generator is properly seeded, if it can't be guaranteed to > > auto-seed. Qt's QRandomGenerator::system() is of cryptographic quality and > > requires no seeding[*], so you can use it to generate random data to seed > > OpenSSL if necessary. RSA key pairs are usually big these days (2048 to 4096 > > bits), so you may want to investigate an elliptic curve key instead, which > > would reduce the computation time. > > > > 2) create a certificate-signing request (CSR), which contains the > > certificate > > header fields. Notably, it has the CN (Common Name) field, which identifies > > which hostnames it applies for. You want "localhost" > > > > 3) sign the CSR. You'll sign with the key used in #1, causing this to be > > self- > > signed. The result is the certificate. > > > > There are lots of examples on the Internet on how to do this with the > > openssl > > command. You'll have to find out how to do it with the API, if you don't > > want > > to ship the command. > > > > For anyone wondering about turning off the SSL error on self-signed > > certificates: self-signing isn't inherently bad. The SSL error comes not > > because the certificate is self-signed, but because it's not signed by any > > certificate in the Certificate Authority list. The fact it's self-signed is > > simply extra information, as it's the most common cause of an authority not > > being found. But if you add the certificate itself to the CA list (in fact, > > make it the only entry!), then it'll match to a CA and you get no SSL error. > > > > [*] this is also why René is having problems with the RDRAND instruction in > > the other thread. > > -- > > Thiago Macieira - thiago.macieira (AT) intel.com > > Software Architect - Intel DPG Cloud Engineering > > > > > > > > _______________________________________________ > > Interest mailing list > > Interest@qt-project.org > > https://lists.qt-project.org/listinfo/interest > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > https://lists.qt-project.org/listinfo/interest > _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest