0 votos

Faltan certificados tras actualizar offlineimap

He actualizado offlineimap a través de Homebrew y ahora es 8.0.0 con Python 3.10. Ahora me faltan los certificados:

 ERROR: Unknown SSL protocol connecting to host 'imap.mail.eu-west-1.awsapps.com' for repository 'RepositoryAtletismoEmocional'. OpenSSL responded:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)

He buscado Install Certificate.command en el disco duro sin resultados. También he probado a utilizar el paquete certifi con estos comandos en ~/.bash_profile :

CERT_PATH=$(python3 -m certifi)
export SSL_CERT_FILE=${CERT_PATH}
export REQUESTS_CA_BUNDLE=${CERT_PATH}

¿Cómo puedo instalar certificados para ejecutar offlineimap ?

Actualización

Actualización del brew paquetes para otro software, veo esta línea:

Installing dependencies for python@3.9: ca-certificates, sqlite, xz and libffi

He buscado en Internet y he encontrado este gist :

# Based on: https://github.com/python/cpython/blob/master/Mac/BuildScript/resources/install_certificates.command

# install_certifi.py
#
# sample script to install or update a set of default Root Certificates
# for the ssl module.  Uses the certificates provided by the certifi package:
#       https://pypi.org/project/certifi/
import os
import os.path
import ssl
import stat
import subprocess
import sys
STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
             | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP
             | stat.S_IROTH |                stat.S_IXOTH )
def main():
    openssl_dir, openssl_cafile = os.path.split(
        ssl.get_default_verify_paths().openssl_cafile)
    print(" -- pip install --upgrade certifi")
    subprocess.check_call([sys.executable,
        "-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"])
    import certifi
    # change working directory to the default SSL directory
    os.chdir(openssl_dir)
    relpath_to_certifi_cafile = os.path.relpath(certifi.where())
    print(" -- removing any existing file or link")
    try:
        os.remove(openssl_cafile)
    except FileNotFoundError:
        pass
    print(" -- creating symlink to certifi certificate bundle")
    os.symlink(relpath_to_certifi_cafile, openssl_cafile)
    print(" -- setting permissions")
    os.chmod(openssl_cafile, STAT_0o775)
    print(" -- update complete")
if __name__ == '__main__':
    main()

Pero offlineimap sigue arrojando el mismo error:

ERROR: Exceptions occurred during the run!
ERROR: Unknown SSL protocol connecting to host 'imap.mail.eu-west-1.awsapps.com' for repository 'RepositoryAtletismoEmocional'. OpenSSL responded:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)

segunda actualización

He comprobado el offlineimaprc y utiliza:

ssl=true
sslcacertfile = /usr/local/etc/openssl/cert.pem

y ese archivo tiene dos años. Así que tal vez sólo tengo que volver a generar ese certificado o punto offlineimap al certificado nativo de macOS?

1voto

Tony Williams Puntos 4903

Así que el problema que tiene es una cadena de certificados rota. Supongo que has probado la herramienta con dos servidores diferentes para que podamos descartar una rotura casual en el extremo del servidor.

El manejo de certificados con Homebrew no es lo ideal. Puede que tu script tampoco lo esté haciendo bien. Yo probaría con pip3 install --upgrade certifi

También podrías comprobar que tu script de Python 3 está encontrando el binario de Python que crees que está encontrando. Haz una which python3 y luego intenta llamar a ese Python 3 y pasarle el script - por ejemplo algo como /usr/local/bin/python3 /usr/local/bin/offlineimap Eche también un vistazo a la parte superior de offlineimap para comprobar el shebang en la línea 1.

Por último, el offlineimap sitio web dice que soporta ser instalado con pip por lo que podría desinstalar la versión Homebrew e instalarlo con pip3 install --user offlineimap (Esto instalará actualmente la versión 7.3.4)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X