I cannot remember a time when browsers ever "trusted" a self-signed certificate. Maybe in the '90s. I've been using Apache since '98 and SSL since 2004. I've always only used Mozilla browsers however (Netscape, Mozilla Suite, Seamonkey, Firefox).
You will not find a trusted Certificate Authority (CA) that will issue a cert for "localhost." It violates the baselines requirements for CA's and anyone that did would end up like Startcom or Symantic and have their certs untrusted.
Older versions of Firefox would let you add an exception to a self-sighed cert but the latest versions do not seem to allow it. So that leaves few options.
1. Create your own CA and sign your cert with it. This still is not trusted by browsers but an exception can be made for untrusted CA's. This does all the work for you supposedly, I have not tried it I admit.
https://blog.filippo.io/mkcert-valid-ht ... localhost/2. Get a free subdomain from any number of free DNS providers, and if your ISP allows incoming port 80 requests (-: mine doesn't), you can get a Let's Encrypt cert for that subdomain.