Kern Germain also provided a simpler setup, by adding certifi to the Maya environment, and add this env var in Maya:
SSL_CERT_FILE="/path/to/certifi/cacert.pem"
Then a set-up menu in userSetup.py (specific to Linux)
from maya import cmds
from maya import mel
import ssl
import os
def createMenu():
if cmds.about(batch=True):
# don't create menu in batch mode
return
if cmds.menu("GroomMenu", exists=True):
cmds.deleteUI("GroomMenu")
_ssl_cert_paths = ssl.get_default_verify_paths()
_ssl_cert_file = os.getenv(_ssl_cert_paths.openssl_cafile_env) or _ssl_cert_paths.openssl_cafile
enabled = os.path.isfile(_ssl_cert_file)
groom_menu = cmds.menu(
"GroomMenu",
label="Grooming Tools",
parent=mel.eval("$retvalue = $gMainWindow;")
)
cmds.menuItem(
label="Launch Grooming Tools",
parent=groom_menu,
command="import xgtc;import xgToolsUI_user_sub;xgToolsUI_user_sub.XgtRun();",
sourceType="python",
enable=enabled)
if not enabled:
cmds.menuItem(
label=f'Cannot launch Grooming Tools, contact your TD and ask them to install "{_ssl_cert}"',
parent=groom_menu)
maya.cmds.evalDeferred("createMenu()")