### 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

'''Handles client authentication via cert/key
        This is a fairly lightweight extension on HTTPSHandler, and can be used
        in place of HTTPSHandler
        '''
        def __init__(self, client_cert=None, client_key=None, unix_socket=None, **kwargs):
            urllib_request.HTTPSHandler.__init__(self, **kwargs)
            self.client_cert = client_cert
            self.client_key = client_key
            self._unix_socket = unix_socket
        def https_open(self, req):
            return self.do_open(self._build_https_connection, req)
        def _build_https_connection(self, host, **kwargs):
            kwargs.update({
                'cert_file': self.client_cert,
                'key_file': self.client_key,
            })
            try:
                kwargs['context'] = self._context
            except AttributeError:
                pass
            if self._unix_socket:
                return UnixHTTPSConnection(self._unix_socket)(host, **kwargs)
            if not HAS_SSLCONTEXT:
                return CustomHTTPSConnection(host, **kwargs)
            return httplib.HTTPSConnection(host, **kwargs)
    @contextmanager
    def unix_socket_patch_httpconnection_connect():