浏览代码

Merge pull request #298 from dalf/ssl

[fix] SSL : SNI support
Adam Tauber 10 年前
父节点
当前提交
18e7d60702
共有 8 个文件被更改,包括 25 次插入12 次删除
  1. 5
    0
      requirements.txt
  2. 0
    4
      searx/engines/btdigg.py
  3. 0
    4
      searx/engines/kickass.py
  4. 0
    3
      searx/engines/photon.py
  5. 0
    1
      searx/tests/engines/test_kickass.py
  6. 10
    0
      searx/webapp.py
  7. 5
    0
      setup.py
  8. 5
    0
      versions.cfg

+ 5
- 0
requirements.txt 查看文件

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

+ 0
- 4
searx/engines/btdigg.py 查看文件

29
     params['url'] = search_url.format(search_term=quote(query),
29
     params['url'] = search_url.format(search_term=quote(query),
30
                                       pageno=params['pageno']-1)
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
     return params
32
     return params
37
 
33
 
38
 
34
 

+ 0
- 4
searx/engines/kickass.py 查看文件

34
     params['url'] = search_url.format(search_term=quote(query),
34
     params['url'] = search_url.format(search_term=quote(query),
35
                                       pageno=params['pageno'])
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
     return params
37
     return params
42
 
38
 
43
 
39
 

+ 0
- 3
searx/engines/photon.py 查看文件

41
     # using searx User-Agent
41
     # using searx User-Agent
42
     params['headers']['User-Agent'] = searx_useragent()
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
     return params
44
     return params
48
 
45
 
49
 
46
 

+ 0
- 1
searx/tests/engines/test_kickass.py 查看文件

15
         self.assertIn('url', params)
15
         self.assertIn('url', params)
16
         self.assertIn(query, params['url'])
16
         self.assertIn(query, params['url'])
17
         self.assertIn('kickass.to', params['url'])
17
         self.assertIn('kickass.to', params['url'])
18
-        self.assertIn('verify', params)
19
         self.assertFalse(params['verify'])
18
         self.assertFalse(params['verify'])
20
 
19
 
21
     def test_response(self):
20
     def test_response(self):

+ 10
- 0
searx/webapp.py 查看文件

65
 from searx.autocomplete import searx_bang, backends as autocomplete_backends
65
 from searx.autocomplete import searx_bang, backends as autocomplete_backends
66
 from searx.plugins import plugins
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
 static_path, templates_path, themes =\
79
 static_path, templates_path, themes =\
70
     get_themes(settings['themes_path']
80
     get_themes(settings['themes_path']

+ 5
- 0
setup.py 查看文件

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

+ 5
- 0
versions.cfg 查看文件

32
 unittest2 = 0.5.1
32
 unittest2 = 0.5.1
33
 waitress = 0.8.8
33
 waitress = 0.8.8
34
 zc.recipe.testrunner = 2.0.0
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
 # Required by:
41
 # Required by:
37
 # WebTest==2.0.11
42
 # WebTest==2.0.11