With Merlin or an LSP you can have a key bound to take you to the implementation of a function. What I’d do is start there, copying Client.create into a new function that takes an Ssl.socket that can be set up appropriately.
Client.create as written doesn’t have a workaround. To put it nicely it’s a convenient and high-level interface with only the one override in hostname_for_ssl.
If you don’t want to do that, and if you only want this for testing, try testing with a VPS and a valid SSL.