Introduce PhutilHTTPEngineExtension, for flexibly compromising SSL
Summary:
Ref T10227. Currently, we have a weird one-off thing in arc for blindly trusting domains, since this was easier than dealing with all the users using self-signed certificates.
Convert this into a modular extension and extend it to support certificates with bad hostnames (maybe plausibly legitimate when connecting to a machine via different interfaces? I guess?) and proxies.
This is the first of three changes which bring support to all of libphutil, arcanist, and Phabricator.
Test Plan:
- Defined a "trust authority" extension, saw it trust/not trust authority.
- Defined a "proxy" extension, saw requests go through a proxy.
- Used --trace, saw proxy in trace.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T10227
Differential Revision: https://secure.phabricator.com/D16090