Browse Source

Merge pull request #298 from dalf/ssl

[fix] SSL : SNI support
Adam Tauber 10 years ago
parent
commit
18e7d60702

+ 5
- 0
requirements.txt View File

@@ -5,3 +5,8 @@ lxml
5 5
 pyyaml
6 6
 pygments
7 7
 python-dateutil
8
+ndg-httpsclient
9
+pyopenssl
10
+pyasn1
11
+pyasn1-modules
12
+certifi

+ 0
- 4
searx/engines/btdigg.py View File

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

+ 0
- 4
searx/engines/kickass.py View File

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

+ 0
- 3
searx/engines/photon.py View File

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

+ 0
- 1
searx/tests/engines/test_kickass.py View File

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

+ 10
- 0
searx/webapp.py View File

@@ -65,6 +65,16 @@ from searx.query import Query
65 65
 from searx.autocomplete import searx_bang, backends as autocomplete_backends
66 66
 from searx.plugins import plugins
67 67
 
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
+
68 78
 
69 79
 static_path, templates_path, themes =\
70 80
     get_themes(settings['themes_path']

+ 5
- 0
setup.py View File

@@ -47,6 +47,11 @@ setup(
47 47
         'pygments',
48 48
         'setuptools',
49 49
         'python-dateutil',
50
+        'pyopenssl',
51
+        'ndg-httpsclient',
52
+        'pyasn1',
53
+        'pyasn1-modules',
54
+        'certifi'
50 55
     ],
51 56
     extras_require={
52 57
         'test': [

+ 5
- 0
versions.cfg View File

@@ -32,6 +32,11 @@ speaklater = 1.3
32 32
 unittest2 = 0.5.1
33 33
 waitress = 0.8.8
34 34
 zc.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
35 40
 
36 41
 # Required by:
37 42
 # WebTest==2.0.11