浏览代码

[fix] #471 #463 fix old openssl(<1.0.2) requests verify error

misnyo 9 年前
父节点
当前提交
35a2bc5650
共有 2 个文件被更改,包括 9 次插入1 次删除
  1. 8
    0
      searx/__init__.py
  2. 1
    1
      versions.cfg

+ 8
- 0
searx/__init__.py 查看文件

@@ -15,9 +15,11 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
15 15
 (C) 2013- by Adam Tauber, <asciimoo@gmail.com>
16 16
 '''
17 17
 
18
+import certifi
18 19
 import logging
19 20
 from os import environ
20 21
 from os.path import realpath, dirname, join, abspath
22
+from ssl import OPENSSL_VERSION_INFO, OPENSSL_VERSION
21 23
 try:
22 24
     from yaml import load
23 25
 except:
@@ -47,4 +49,10 @@ else:
47 49
 
48 50
 logger = logging.getLogger('searx')
49 51
 
52
+# Workaround for openssl versions <1.0.2
53
+# https://github.com/certifi/python-certifi/issues/26
54
+if OPENSSL_VERSION_INFO[0:3] < (1, 0, 2):
55
+    environ['REQUESTS_CA_BUNDLE'] = certifi.old_where()
56
+    logger.warning('You are using an old openssl version({0}), please upgrade above 1.0.2!'.format(OPENSSL_VERSION))
57
+
50 58
 logger.info('Initialisation done')

+ 1
- 1
versions.cfg 查看文件

@@ -35,7 +35,7 @@ pyopenssl = 0.15.1
35 35
 ndg-httpsclient = 0.4.0
36 36
 pyasn1 = 0.1.8
37 37
 pyasn1-modules = 0.0.6
38
-certifi = 2015.04.28
38
+certifi = 2015.11.20.1
39 39
 
40 40
 cffi = 1.1.2
41 41
 cryptography = 0.9.1