it-swarm.com.de

ca-Zertifikate Mac OS X

Ich muss offlineimap und mu4e auf emacs installieren. Problem ist die Konfiguration. Wenn ich offlineimap starte, bekomme ich:

OfflineIMAP 6.5.5
Licensed under the GNU GPL v2+ (v2 or any later version)
Thread 'Account sync Gmail' terminated with exception:
Traceback (most recent call last):
File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/threadutil.py", line 158, in   run
Thread.run(self)
File "/anaconda/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/accounts.py", line 226, in  syncrunner
self.remoterepos = Repository(self, 'remote')
File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/repository/__init__.py", line 78, in __new__
return repo(name, account)
File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/repository/Gmail.py", line 37, in __init__
IMAPRepository.__init__(self, reposname, account)
File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/repository/IMAP.py", line 34, in __init__
self.imapserver = imapserver.IMAPServer(self)
File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/imapserver.py", line 83, in __init__
self.sslcacertfile = repos.getsslcacertfile()
File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/repository/IMAP.py", line 211, in getsslcacertfile
% (self.name, cacertfile))
SyntaxWarning: CA certfile for repository 'Remote' could not be found. No such file: '/usr/share/curl/ca-bundle.crt.original'


Last 2 debug messages logged for Account sync Gmail prior to exception:
thread: Register new thread 'Account sync Gmail' (account 'Gmail')
imap: Using authentication mechanisms ['GSSAPI', 'CRAM-MD5', 'PLAIN', 'LOGIN']

Das ist mein .offlineimaprc

[general]
accounts = Gmail
maxsyncaccounts = 1
pythonfile = ~/.offlineimap.py

[Account Gmail]
localrepository = Local
remoterepository = Remote

[Repository Local]
type = Maildir
localfolders = ~/Maildir

[Repository Remote]
type = Gmail
remoteuser = [email protected]
remotepasseval = get_password_emacs("imap.gmail.com", "[email protected]", "993")
realdelete = no

folderfilter = lambda foldername: foldername not in ['[Gmail]/Spam', '[Gmail]/All Mail',    '[Gmail]/Starred', '[Gmail]/Important']

holdconnectionopen = true
keepalive = 60
sslcacertfile = /usr/share/curl/ca-bundle.crt.original #??

Es gibt ein Problem mit der Python-Installation und eines mit dem CA-Zertifikat. Punkt ist da kein Curl-Ca-Bundle-Brühpaket. Gibt es eine andere Möglichkeit, ein Zertifikat zu installieren?

18
Enrico Pirani

Ich hatte ein ähnliches Problem (unter MacOS 10.10.2, openssl 1.0.2 und offlineimap 6.5.5, beide von Homebrew) und konnte die Dummy-Zertifikatslösung nicht zum Laufen bringen. Ich habe jedoch ein Zertifikat gefunden, das offlineimap aufhört, sich in /usr/local/etc/openssl/cert.pem zu beschweren (das während der Installation von openssl durch homebrew dort abgelegt wird, sagt brew info openssl). Warnung: Ich weiß nicht, ob dies ein guter oder sicherer Weg ist.

29
user1248490

Unter OS X gibt es normalerweise kein CA-Zertifikatspaket, da SSL-Bibliotheken normalerweise das Security Framework von Apple intern verwenden und Zertifikate von Keychain beziehen.

Sie können jedoch ein eigenes Bundle aus Keychain-Zertifikaten erstellen: Öffnen Sie den Schlüsselbund, navigieren Sie zur Kategorie "Zertifikate" im Schlüsselbund "System Roots" und drücken Sie Befehl + Umschalt + E ("Elemente exportieren"), um alle Zertifikate zu speichern. Ich denke, dass Python mit dem PEM-Format umgehen kann.

Alternativ, unter OS X 10.6 und neuer, ist das System Python gegenüber einer OpenSSL-Version aufgebaut, die always ebenfalls in Keychain betrachtet. Daher können Sie ein Dummy-Bundle erstellen, das nur eine selbstsignierte Dummy-Zertifizierung enthält, und das in Ihrer Konfiguration verwenden, um das Herunterfahren von OfflineIMAP zu veranlassen. Es wird trotzdem in die Keychain-Zertifikate eingesehen.

Weitere Informationen finden Sie unter https://www.Mercurial-scm.org/wiki/CACertificates#Mac_OS_X_10.6_and_higher .

12
lunaryorn

Ein einfacher Weg, um fortzufahren, ist die Verwendung des curl-Zertifikatspakets. Ich benutze MacPorts, also wurde dies mit erhalten

Sudo port install curl-ca-bundle

Sie können dann port contents curl-ca-bundle ausführen, um zu sehen, was installiert ist Und dann Folgendes zu ~/.offlineimaprc im Abschnitt Ihres Remote-Kontos hinzufügen

sslcacertfile =/opt/local/share/curl/curl-ca-bundle.crt

Beachten Sie, dass dies auch einen Link zu diesen Zertifikaten als /opt/local/etc/openssl/cert.pem enthält.

6
Patrick Sanan

Ich habe den obigen Befehl von @ wood-guardian ausgeführt und dann das Problem behoben.

Ruby -ropenssl -e "p OpenSSL :: X509 :: DEFAULT_CERT_FILE"

exportieren Sie das Ergebnis der obigen Anweisung in die Umgebungsvariable SSL_CERT_FILE

exportieren Sie SSL_CERT_FILE =/usr/local/etc/openssl/cert.pem

1
vimal kumar

Ich hatte Erfolg auf einem Mac mit 10.6, auf dem ich das Homebrew-Ökosystem vorziehen möchte, indem ich die Antwort von @ patrick-sanan verwende und dann in der Macports-Ökosystemversion von cert.pem Symlinking:

Sudo rm /usr/local/etc/openssl
Sudo ln -s /opt/local/etc/openssl/cert.pem /usr/local/etc/openssl
0

Dies kann passieren, wenn Sie mehrere Installationen von openssl haben (zB v1.0.2 und 1.1.1). Wenn beide zu einem bestimmten Zeitpunkt von brew installiert wurden, müssen Sie beide deinstallieren, um den Konflikt zu entfernen

brew uninstall --ignore-dependencies --force [email protected]
brew uninstall --ignore-dependencies --force openssl

Und die neu installieren, wie

brew install [email protected]

Hoffe das klappt!

0
Wood Guardian