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

if not HAS_GZIP:
            raise MissingModuleError(self.missing_gzip_error(), import_traceback=GZIP_IMP_ERR)
        if PY3:
            self._io = fp
        else:
            
            
            self._io = io.BytesIO()
            for block in iter(functools.partial(fp.read, 65536), b''):
                self._io.write(block)
            self._io.seek(0)
            fp.close()
        gzip.GzipFile.__init__(self, mode='rb', fileobj=self._io)  
    def close(self):
        try:
            gzip.GzipFile.close(self)
        finally:
            self._io.close()
    @staticmethod
    def missing_gzip_error():
        return missing_required_lib(
            'gzip',
            reason='to decompress gzip encoded responses. '
                   'Set "decompress" to False, to prevent attempting auto decompression'
        )
class RequestWithMethod(urllib_request.Request):