### Summary

In Python 3.12 the deprecated `key_file`, `cert_file` and `check_hostname` parameters have been [removed](https://docs.python.org/3.12/library/http.client.html#http.client.HTTPSConnection).

There is code which still attempts to set these, such as:

https://github.com/ansible/ansible/blob/0371ea08d6de55635ffcbf94da5ddec0cd809495/lib/ansible/module_utils/urls.py#L604-L608

Which results in an error under Python 3.12:

```
>       return httplib.HTTPSConnection(host, **kwargs)
E       TypeError: HTTPSConnection.__init__() got an unexpected keyword argument 'cert_file'
```

### Issue Type

Feature Idea

### Component Name

module_utils/urls.py

call(None, 'user'),  
        call(None, 'passwd'),  
        call(None, 'ansible-tests'),  
        call(None, True),  
        call(None, 'all'),  
        call(None, '/tmp/client.pem'),  
        call(None, '/tmp/client.key'),  
        call(None, cookies),  
        call(None, '/foo/bar/baz.sock'),  
        call(None, pem),  
        call(None, None),  
        call(None, True),  
        call(None, ['ECDHE-RSA-AES128-SHA256']),  
        call(None, True),  
    ]
    fallback_mock.assert_has_calls(calls)
    assert fallback_mock.call_count == 18  
    args = urlopen_mock.call_args[0]
    assert args[1] is None  
    assert args[2] == 100  
    req = args[0]
    assert req.headers == {
        'Authorization': b'Basic dXNlcjpwYXNzd2Q=',
        'Cache-control': 'no-cache',
        'Foo': 'bar',
        'User-agent': 'ansible-tests'
    }
    assert req.data is None
    assert req.get_method() == 'GET'
def test_Request_open(urlopen_mock, install_opener_mock):