Disclaimer: I didn’t look at the code from this crate for too long.
This crate appears to be pretty much the most hands free way to get https support with hyper. However, a caveat is that this does not do any protocol negotiation and thus hyper is forced to always use http1.1.
I think it should, by default, do most of this kind of setup for the user without any additional effort on the user end.