2014-07-10 7 views
15

मुझे इमैक पर ऑफ़लाइनमैप और mu4e इंस्टॉल करने की आवश्यकता है। समस्या विन्यास है। जब मैं offlineimap चलाने मैं:सीए-प्रमाणपत्र मैक ओएस एक्स

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'] 

यह मेरा .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 #?? 

है अजगर को स्थापित करने और CA प्रमाणपत्र के साथ एक के साथ एक समस्या है। प्वाइंट कोई कर्ल-सीए-बंडल ब्रू पैकेज नहीं है। क्या मुझे प्रमाण पत्र स्थापित करने का कोई और तरीका है?

उत्तर

8

आमतौर पर ओएस एक्स पर कोई सीए प्रमाणपत्र बंडल नहीं होता है, क्योंकि एसएसएल पुस्तकालय आमतौर पर ऐप्पल के सुरक्षा फ्रेमवर्क का आंतरिक रूप से उपयोग करते हैं और कीचेन से प्रमाण पत्र प्राप्त करते हैं।

आप कीचेन प्रमाण पत्र से अपना स्वयं का बंडल बना सकते हैं, हालांकि: ओपन कीचेन, "सिस्टम रूट्स" कीचेन में "प्रमाणपत्र" श्रेणी पर नेविगेट करें, और कमांड + शिफ्ट + ई ("निर्यात आइटम") दबाएं, सहेजने के लिए सभी प्रमाणपत्र मुझे लगता है कि पायथन पीईएम प्रारूप को संभाल सकता है, इसलिए इसे चुनना सुनिश्चित करें।

वैकल्पिक रूप से, ओएस एक्स 10.6 और नए पर, सिस्टम पायथन एक ओपनएसएसएल संस्करण के खिलाफ बनाया गया है जो हमेशा कीचेन में भी दिखता है। इसलिए, आप एक डमी बंडल बना सकते हैं जिसमें केवल एक डमी स्वयं-हस्ताक्षरित प्रमाणीकरण होता है, और ऑफ़लाइनमैप को बंद करने के लिए अपनी कॉन्फ़िगरेशन में इसका उपयोग करें। यह वैसे भी कीचेन प्रमाणपत्रों को देखेगा।

विवरण के लिए https://www.mercurial-scm.org/wiki/CACertificates#Mac_OS_X_10.6_and_higher देखें।

+0

हाँ मैं Mercurial में सीए-प्रमाणपत्र में पॉइंटिंग निर्देशिका का प्रबंधन करता हूं। अब ठीक है। धन्यवाद –

+0

जब मैंने "सिस्टम रूट्स" का उपयोग किया था, तो यह मेरे लिए काम नहीं करता था, लेकिन जब मैंने निर्यात करके प्रमाण पत्र.pem बनाया था तो काम किया था (चयन करें, सभी, ctrl-click निर्यात ...) कीचेन्स = "सिस्टम" और श्रेणी = "प्रमाण पत्र", और concusenated कि /usr/local/etc/openssl/cert.pem से सामग्री के साथ। हमारे पास एक अजीब वातावरण है जहां संगठन का अपना प्रमाणपत्र है और सुरक्षा उद्देश्यों के लिए सभी एसएसएल यातायात को रोकता है और यह प्रमाण सिस्टम प्रमाणपत्र में था; अन्य सभी /usr/local/etc/openssl/cert.pem में थे। –

22

मुझे एक समान समस्या थी (मैकोज़ 10.10.2, ओपनएसएल 1.0.2 और ऑफ़लाइनमैप 6.5.5 दोनों होमब्रू से) और काम करने के लिए डमी प्रमाणपत्र समाधान नहीं मिला। हालांकि, मुझे एक प्रमाणपत्र फ़ाइल मिली जो ऑफलाइनमैप को /usr/local/etc/openssl/cert.pem में शिकायत करना बंद कर देता है (जिसे होमब्रे के माध्यम से ओपनएसएल की स्थापना के दौरान रखा जाता है, brew info openssl मुझे बताता है)। चेतावनी: मुझे नहीं पता कि यह करने के लिए यह एक अच्छा या सुरक्षित तरीका है या नहीं।

+1

यह काम करता है अगर आपने होमब्री के माध्यम से 'openssl' स्थापित किया है। चूंकि यह वास्तव में आपके कीचेन में स्थापित सभी प्रमाणपत्रों का निर्यात है, इसलिए ऐसा करने का एक सुरक्षित तरीका भी होना चाहिए। –

+0

धन्यवाद @ rudolfo.christ - मैंने जवाब अपडेट किया। प्रमाण पत्र पथ में '/ usr/local' ने मुझे बताया होगा कि यह होमब्रू से आता है ... – user1248490

+0

यह मेरे लिए काम करता है जब कुछ और नहीं होगा! – incandescentman

6

कर्ल प्रमाणपत्र बंडल का उपयोग करने के लिए आगे बढ़ने का एक आसान तरीका है। मैं MacPorts उपयोग करते हैं, तो यह

sudo port install curl-ca-bundle 

साथ प्राप्त हुई थी तब आप यह क्या स्थापित देखने के लिए, port contents curl-ca-bundle चला सकते हैं और फिर अपने दूरस्थ खाता

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

नोट के लिए खंड में ~/.offlineimaprc के लिए निम्न जोड़ने कि यह इन प्रमाणपत्रों को /opt/local/etc/openssl/cert.pem के रूप में भी लिंक करेगा।