Use certifi CA certs with urllib requests

CURA-6698
This commit is contained in:
Lipu Fei 2019-08-13 12:59:25 +02:00
parent 445fb59c12
commit 2ed5fd73bc

View File

@ -8,6 +8,8 @@ import ssl
import urllib.request
import urllib.error
import certifi
class SliceInfoJob(Job):
def __init__(self, url, data):
@ -20,11 +22,14 @@ class SliceInfoJob(Job):
Logger.log("e", "URL or DATA for sending slice info was not set!")
return
# Submit data
kwoptions = {"data" : self._data, "timeout" : 5}
# CURA-6698 Create an SSL context and use certifi CA certificates for verification.
context = ssl.SSLContext(protocol = ssl.PROTOCOL_TLSv1_2)
context.load_verify_locations(cafile = certifi.where())
if Platform.isOSX():
kwoptions["context"] = ssl._create_unverified_context()
# Submit data
kwoptions = {"data": self._data,
"timeout": 5,
"context": context}
Logger.log("i", "Sending anonymous slice info to [%s]...", self._url)
@ -35,4 +40,4 @@ class SliceInfoJob(Job):
except urllib.error.HTTPError:
Logger.logException("e", "An HTTP error occurred while trying to send slice information")
except Exception: # We don't want any exception to cause problems
Logger.logException("e", "An exception occurred while trying to send slice information")
Logger.logException("e", "An exception occurred while trying to send slice information")