Merge pull request #298 from dalf/ssl

[fix] SSL : SNI support
This commit is contained in:
Adam Tauber 2015-04-26 13:12:04 -04:00
commit 18e7d60702
8 changed files with 25 additions and 12 deletions

View File

@ -5,3 +5,8 @@ lxml
pyyaml pyyaml
pygments pygments
python-dateutil python-dateutil
ndg-httpsclient
pyopenssl
pyasn1
pyasn1-modules
certifi

View File

@ -29,10 +29,6 @@ def request(query, params):
params['url'] = search_url.format(search_term=quote(query), params['url'] = search_url.format(search_term=quote(query),
pageno=params['pageno']-1) pageno=params['pageno']-1)
# FIX: SSLError: hostname 'btdigg.org'
# doesn't match either of 'ssl2000.cloudflare.com', 'cloudflare.com', '*.cloudflare.com'
params['verify'] = False
return params return params

View File

@ -34,10 +34,6 @@ def request(query, params):
params['url'] = search_url.format(search_term=quote(query), params['url'] = search_url.format(search_term=quote(query),
pageno=params['pageno']) pageno=params['pageno'])
# FIX: SSLError: hostname 'kickass.so'
# doesn't match either of '*.kickass.to', 'kickass.to'
params['verify'] = False
return params return params

View File

@ -41,9 +41,6 @@ def request(query, params):
# using searx User-Agent # using searx User-Agent
params['headers']['User-Agent'] = searx_useragent() params['headers']['User-Agent'] = searx_useragent()
# FIX: SSLError: SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
params['verify'] = False
return params return params

View File

@ -15,7 +15,6 @@ class TestKickassEngine(SearxTestCase):
self.assertIn('url', params) self.assertIn('url', params)
self.assertIn(query, params['url']) self.assertIn(query, params['url'])
self.assertIn('kickass.to', params['url']) self.assertIn('kickass.to', params['url'])
self.assertIn('verify', params)
self.assertFalse(params['verify']) self.assertFalse(params['verify'])
def test_response(self): def test_response(self):

View File

@ -65,6 +65,16 @@ from searx.query import Query
from searx.autocomplete import searx_bang, backends as autocomplete_backends from searx.autocomplete import searx_bang, backends as autocomplete_backends
from searx.plugins import plugins from searx.plugins import plugins
# check if the pyopenssl, ndg-httpsclient, pyasn1 packages are installed.
# They are needed for SSL connection without trouble, see #298
try:
import OpenSSL.SSL # NOQA
import ndg.httpsclient # NOQA
import pyasn1 # NOQA
except ImportError:
logger.critical("The pyopenssl, ndg-httpsclient, pyasn1 packages have to be installed.\n"
"Some HTTPS connections will failed")
static_path, templates_path, themes =\ static_path, templates_path, themes =\
get_themes(settings['themes_path'] get_themes(settings['themes_path']

View File

@ -47,6 +47,11 @@ setup(
'pygments', 'pygments',
'setuptools', 'setuptools',
'python-dateutil', 'python-dateutil',
'pyopenssl',
'ndg-httpsclient',
'pyasn1',
'pyasn1-modules',
'certifi'
], ],
extras_require={ extras_require={
'test': [ 'test': [

View File

@ -32,6 +32,11 @@ speaklater = 1.3
unittest2 = 0.5.1 unittest2 = 0.5.1
waitress = 0.8.8 waitress = 0.8.8
zc.recipe.testrunner = 2.0.0 zc.recipe.testrunner = 2.0.0
pyopenssl = 0.15.1
ndg-httpsclient = 0.3.3
pyasn1 = 0.1.7
pyasn1-modules = 0.0.5
certifi = 14.05.14
# Required by: # Required by:
# WebTest==2.0.11 # WebTest==2.0.11