Kinda sounds like there should be a QSslCertificate::create() method?

> Sent: Tuesday, July 28, 2020 at 4:18 AM
> From: "Alexander Carôt" <alexander_ca...@gmx.net>
> To: "Alexander Carôt" <alexander_ca...@gmx.net>
> Cc: "Thiago Macieira" <thiago.macie...@intel.com>, "Paul Pfützenreuter" 
> <paul.pfuetzenreu...@gmx.de>, "interest@qt-project.org" 
> <interest@qt-project.org>
> Subject: Re: [Interest] wss:// on localhost
>
> > but for now the localhost wss failed again. If you have another hint please 
> > let me know - I won't give up ;-)
> 
> Eventually I succeeded with this tool:
> 
> https://github.com/FiloSottile/mkcert
> 
> After certificate generation and installation I was able connecting to 
> localhost - very good !
> 
> Now I need to figure how to automize this process on any client's machine.
> 
> Further inspiration appreciated - thanks for your help !
> 
> Best
> 
> Alex
> 
> 
> --
> http://www.carot.de
> Email : alexan...@carot.de
> Tel.: +49 (0)177 5719797
> 
> 
> > Gesendet: Dienstag, 28. Juli 2020 um 08:05 Uhr
> > Von: "Alexander Carôt" <alexander_ca...@gmx.net>
> > An: "Mårten Nordheim" <marten.nordh...@qt.io>
> > Cc: "Thiago Macieira" <thiago.macie...@intel.com>, "Paul Pfützenreuter" 
> > <paul.pfuetzenreu...@gmx.de>, "interest@qt-project.org" 
> > <interest@qt-project.org>
> > Betreff: Re: [Interest] wss:// on localhost
> >
> > 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
> >
> _______________________________________________
> 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

Reply via email to