Closed justarb closed 9 years ago
I think this error is because of recently founded vulnerability in SSL_v3 named POODLE which makes it insecure, and for this reason Apple will block any connection trying to use this version of SSL. Of course there are other alternatives like TLS_v1. Q: Have you updated your OS recently? because there is no such problem in OS X 10.9.4.
See discussion here: https://github.com/coursera-dl/coursera/issues/324. I have the same bug on Linux as @justarb has on OS X. Coursera recently disabled SSLv3. Nothing to do with Apple.
I was able to get around this error by updating my Python implementation. I was using OS X's default Python (2.7.6) so I updated to python.org's 2.7.9 release and now the downloader works fine.
Yes, updating Python (along with OpenSSL) is the way to go. Also, the problem should be fixed with the latest commit: https://github.com/coursera-dl/coursera/commit/46320cfec9b5e9e42fe6c7b1ca602347e3ee4420
Yep - using brew
to install python did the trick for me.
have you successfully downloaded the course?
The downloader has been working fine for me for quite some time now and last week it ran successfully for me. However today I keep getting an SSL error no matter which course I try to download. I have tried the --clear-cache option but that doesn't make any difference. I have made sure all the required packages are up to date.
My operating system is Mac OS X 10.10.2
The errors I am getting are:
$ ../coursera/coursera-dl -n --clear-cache --path=~/posaconcurrency-001/ posaconcurrency-001 Downloading class: posaconcurrency-001 Starting new HTTPS connection (1): class.coursera.org /Library/Python/2.7/site-packages/requests/packages/urllib3/util/ssl.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning Starting new HTTPS connection (1): www.coursera.org /Library/Python/2.7/site-packages/requests/packages/urllib3/util/ssl.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning Traceback (most recent call last): File "../coursera/coursera-dl", line 6, in
coursera_dl.main()
File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/coursera_dl.py", line 921, in main
result = download_class(args, class_name)
File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/coursera_dl.py", line 817, in download_class
username=args.username, password=args.password
File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/cookies.py", line 336, in get_cookies_for_class
get_authentication_cookies(session, class_name, username, password)
File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/cookies.py", line 159, in get_authentication_cookies
login(session, username, password, class_name=class_name)
File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/cookies.py", line 114, in login
headers=headers, allow_redirects=False)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 507, in post
return self.request('POST', url, data=data, json=json, _kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 464, in request
resp = self.send(prep, _send_kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/Library/Python/2.7/site-packages/requests/adapters.py", line 431, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:507: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Any help would be appreciated.