file_get_contents with https hosts works just fine, except for a particular host (test api server from some company - ip whitelisted, can\'t give you URL to test). This rule
dont' know if this will actually help, but do try removing the SSL options from your option array.
The reason behind this:
according to http://www.php.net/manual/en/context.ssl.php , verify_peer is false by default.
allow_self_signed REQUIRES verify_peer, and is false by default.
From the above, I gather that allow_self_signed probably overrides your setting for verify_peer.
So please try without any option for SSL, or without the allow_self_signed, and let us know if that helped any.