Offlineimapを使用してGmailに接続するときにCERTIFICATE_VERIFY_FAILED

Offlineimapを使用してGmailに接続するときにCERTIFICATE_VERIFY_FAILED

offlineimapArch Linuxでは、このようにGmailと同期したいと思います。

[general]
accounts = Gmail
maxsyncaccounts = 3

[Account Gmail]
localrepository = LocalGmail
remoterepository = RepositoryGmail
autorefresh = 30
quick = 10
postsynchook = mu index --maildir ~/.offlineimap/Gmail

[Repository LocalGmail]
type = GmailMaildir
localfolders = ~/.offlineimap/Gmail

[Repository RepositoryGmail]
type = Gmail
maxconnections = 2
remoteuser = my.gmail.accountname
remotepass = gmailapppassword
folderfilter = lambda foldername: foldername not in ['[Gmail]/All Mail', '[Gmail]/Important']
sslcacertfile = /etc/ssl/certs/ca-certificates.crt

SSL関連の問題により失敗しました。

$ offlineimap -o -a Gmail
OfflineIMAP 7.2.1
  Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v2.57 (bundled), Python v2.7.15, OpenSSL 1.1.1a  20 Nov 2018
Account sync Gmail:
 *** Processing account Gmail
 Establishing connection to imap.gmail.com:993 (RepositoryGmail)
 ERROR: Unknown SSL protocol connecting to host 'imap.gmail.com' for repository 'RepositoryGmail'. OpenSSL responded:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)

以下を実行してSSL接続を確認できるという他の場所を読みました。

$ openssl s_client -showcerts -connect imap.gmail.com:993
[...]
* OK Gimap ready for requests from 217.63.244.188 s26mb317463625edc

私にとって、これはエラーが実際にSSL接続にあるのではなくofflineimap処理方法にあることを示しています。証明書ファイルが存在し、GlobalSign ルート CA - R2 証明書が含まれます。

それぞれのvirtualenvを使用してsixきれいなpython2.7ときれいなpython3.7をインストールし、まだそこにあることを確認します。offlineimappipCERTIFICATE_VERIFY_FAILED

OfflineimapにGmailと話す方法は?

ベストアンサー1

アーチでは、OpenSSLは現在1.1.1であり、imaplib2の使用に問題があります。

https://github.com/imaplib2/imaplib2/issues/5

以下に説明するように:

https://github.com/OfflineIMAP/offlineimap/issues/573

.offlineimaprc に ssl_version=tls1_2 を追加すると問題が解決します。

おすすめ記事