Offlineimap with SSL files on OSX
You know that. Every morning you go to your beloved terminal emulator, type in
$ offlineimap
to get some emails and BANG, you're presented with
OfflineIMAP 6.5.5 Licensed under the GNU GPL v2+ (v2 or any later version) Account sync Gmail: *** Processing account Gmail Establishing connection to imap.gmail.com:993 ERROR: Server SSL fingerprint 'bfef6858bc803af948632c52241d15dd7696b4d2' for hostname 'imap.gmail.com' does not match configured fing erprint(s) ['606dab919155192b372ebeb390a773ce01c1d2d2']. Please verify and set 'cert_fingerprint' accordingly if not set yet. *** Finished account 'Gmail' in 0:00 ERROR: Exceptions occurred during the run! ERROR: Server SSL fingerprint 'bfef6858bc803af948632c52241d15dd7696b4d2' for hostname 'imap.gmail.com' does not match configured finge rprint(s) ['606dab919155192b372ebeb390a773ce01c1d2d2']. Please verify and set 'cert_fingerprint' accordingly if not set yet. Traceback: File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/accounts.py", line 241, in syncrunner self.__sync() File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/accounts.py", line 303, in __sync remoterepos.getfolders() File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/repository/IMAP.py", line 322, in getfolders imapobj = self.imapserver.acquireconnection() File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/imapserver.py", line 409, in acquireconnection fingerprint=fingerprint File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/imaplibutil.py", line 148, in __init__ super(WrappedIMAP4_SSL, self).__init__(*args, **kwargs) File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/imaplib2.py", line 2021, in __init__ IMAP4.__init__(self, host, port, debug, debug_file, identifier, timeout, debug_buf_lvl) File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/imaplib2.py", line 333, in __init__ self.open(host, port) File "/usr/local/Cellar/offline-imap/6.5.6/libexec/offlineimap/imaplibutil.py", line 165, in open "if not set yet.", OfflineImapError.ERROR.REPO)
The certificate fingerprint has changed. Sorry, pal. You need to manually update the fingerprint in your .offlineimaprc
if you'd like to proceed reading emails. Bump.
Some massive research on that topic wasn't very fruitful, but ended as usually on StackOverflow. As it turns out, if you install openssl
via homebrew1 all certificates installed in your Keychain are exported to /usr/local/etc/openssl/cert.pem
2.
You can take that cert file and use it along with your .offlineimaprc
:
ssl=true sslcacertfile = /usr/local/etc/openssl/cert.pem
Presto. There is no need of adding, or replacing, changed fingerprints anymore. Happy email-reading!
Footnotes:
$ brew install openssl
See the post_install
hook of the openssl formulae