If this would be possible, you could inspect and modify encrypted traffic coming from any machine without ever touching that machine. That's exactly what TLS is supposed to prevent.The proxy needs valid certificates for every website your machines visit. So it needs its own CA certificate to issue these certificates. All of your machines have to trust this CA. You could use the certificate of a trusted public CA, but they won't give you the matching private key. Even if you ask very nicely.
Yeah,exactly. It's a proxy server. So if you don't break and inspect SSL, how is it supposed to categorize websites or any other function of a proxy? It's a fairly common practice these days since everything is TLS based. But I don't want to install a certificate on every machine. I want to install a certificate that would already be trusted by the clients are part of installed root CA's on the major browsers.
Breaking and inspecting TLS is what the proxy is supposed to do, correct. But this requires every machine which uses the proxy to explicitly agree with this. You do this by installing a custom CA certificate on the proxy and on each machine. If breaking TLS would be possible without installing a custom certificate, TLS would be completely pointless. Everyone could just break TLS everwhere.This is not specific to OPNsense, this is just how TLS proxies (and TLS in general) work.
Yes I get all that. But I would just think it would be possible for me to purchase an SSL certificate for my domain (ex. opnsenseproxy.testdomain.com) and install it on the proxy. Then the clients would already have a chain of trust because I purchased it from a reputable CA.
The general approach today is a transparent proxy, so we took that as a given. What's your approach?
The client needs to be presented a trusted certificate matching each of the host names it wants to connect to. These are generated on the fly by your trusted CA.
I thought as long as the browser trusted the certificate on the proxy that it would work.