HTTPS certificates are signed by authorities that you have to trust, otherwise you get an error.
Browsers come with a number of trusted authorities, which is why most https websites work, and why self-signed certificates don't work.
Note that you still get encryption with self-signed certificates, but what you don't get is the validation that you're connecting the right part matching the public key.
So your options that I am aware of are:
(Someone correct me if you spot any mistake)