on master help sign in
Merge pull request #298 from dalf/ssl

[fix] SSL : SNI support

commit18e7d6070275fbc48aef3d84a7f69811541e1fe5 authorAdam Tauber <asciimoo@gmail.com> dateSun 26 Apr 2015, 13:12 (12 years ago) parentff685461876174
8 files changed+25−12
requirements.txt+5 searx/engines/btdigg.py−4 searx/engines/kickass.py−4 searx/engines/photon.py−3 searx/tests/engines/test_kickass.py−1 searx/webapp.py+10 setup.py+5 versions.cfg+5
requirements.txt+5
@@ -5,3 +5,8 @@ lxml
55pyyaml
66pygments
77python-dateutil
8+ndg-httpsclient
9+pyopenssl
10+pyasn1
11+pyasn1-modules
12+certifi
searx/engines/btdigg.py−4
@@ -29,10 +29,6 @@ def request(query, params):
2929 params['url'] = search_url.format(search_term=quote(query),
3030 pageno=params['pageno']-1)
3131
32− # FIX: SSLError: hostname 'btdigg.org'
33− # doesn't match either of 'ssl2000.cloudflare.com', 'cloudflare.com', '*.cloudflare.com'
34− params['verify'] = False
35−
3632 return params
3733
3834
searx/engines/kickass.py−4
@@ -34,10 +34,6 @@ def request(query, params):
3434 params['url'] = search_url.format(search_term=quote(query),
3535 pageno=params['pageno'])
3636
37− # FIX: SSLError: hostname 'kickass.so'
38− # doesn't match either of '*.kickass.to', 'kickass.to'
39− params['verify'] = False
40−
4137 return params
4238
4339
searx/engines/photon.py−3
@@ -41,9 +41,6 @@ def request(query, params):
4141 # using searx User-Agent
4242 params['headers']['User-Agent'] = searx_useragent()
4343
44− # FIX: SSLError: SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
45− params['verify'] = False
46−
4744 return params
4845
4946
searx/tests/engines/test_kickass.py−1
@@ -15,7 +15,6 @@ class TestKickassEngine(SearxTestCase):
1515 self.assertIn('url', params)
1616 self.assertIn(query, params['url'])
1717 self.assertIn('kickass.to', params['url'])
18− self.assertIn('verify', params)
1918 self.assertFalse(params['verify'])
2019
2120 def test_response(self):
searx/webapp.py+10
@@ -65,6 +65,16 @@ from searx.query import Query
6565from searx.autocomplete import searx_bang, backends as autocomplete_backends
6666from searx.plugins import plugins
6767
68+# check if the pyopenssl, ndg-httpsclient, pyasn1 packages are installed.
69+# They are needed for SSL connection without trouble, see #298
70+try:
71+ import OpenSSL.SSL # NOQA
72+ import ndg.httpsclient # NOQA
73+ import pyasn1 # NOQA
74+except ImportError:
75+ logger.critical("The pyopenssl, ndg-httpsclient, pyasn1 packages have to be installed.\n"
76+ "Some HTTPS connections will failed")
77+
6878
6979static_path, templates_path, themes =\
7080 get_themes(settings['themes_path']
setup.py+5
@@ -47,6 +47,11 @@ setup(
4747 'pygments',
4848 'setuptools',
4949 'python-dateutil',
50+ 'pyopenssl',
51+ 'ndg-httpsclient',
52+ 'pyasn1',
53+ 'pyasn1-modules',
54+ 'certifi'
5055 ],
5156 extras_require={
5257 'test': [
versions.cfg+5
@@ -32,6 +32,11 @@ speaklater = 1.3
3232unittest2 = 0.5.1
3333waitress = 0.8.8
3434zc.recipe.testrunner = 2.0.0
35+pyopenssl = 0.15.1
36+ndg-httpsclient = 0.3.3
37+pyasn1 = 0.1.7
38+pyasn1-modules = 0.0.5
39+certifi = 14.05.14
3540
3641# Required by:
3742# WebTest==2.0.11