Use finer-grained control for truststore

This commit is contained in:
grossmj committed 2023-08-07 19:15:14 +10:00
1 parent a2628042e8
commit 5e1792ff4d
1 file changed
+10 -10
+10 -10
View File
@@ -21,7 +21,7 @@ import uuid
import asyncio
import aiohttp
import shutil
import ssl
try:
import importlib_resources
@@ -37,14 +37,6 @@ import logging
log = logging.getLogger(__name__)
try:
import truststore
truststore.inject_into_ssl()
log.info("Using system certificate store for SSL connections")
except ImportError:
pass
class ApplianceManager:
"""
Manages appliances
@@ -54,6 +46,13 @@ class ApplianceManager:
self._appliances = {}
self._appliances_etag = None
self._ssl_context = None
try:
import truststore
self._ssl_context = truststore.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
log.info("Using system certificate store for SSL connections")
except ImportError:
pass
@property
def appliances_etag(self):
@@ -182,7 +181,7 @@ class ApplianceManager:
symbol_url = "https://raw.githubusercontent.com/GNS3/gns3-registry/master/symbols/{}".format(symbol)
async with aiohttp.ClientSession() as session:
async with session.get(symbol_url) as response:
async with session.get(symbol_url, ssl=self._ssl_context) as response:
if response.status != 200:
log.warning("Could not retrieve appliance symbol {} from GitHub due to HTTP error code {}".format(symbol, response.status))
else:
@@ -210,6 +209,7 @@ class ApplianceManager:
async with aiohttp.ClientSession() as session:
async with session.get(
'https://api.github.com/repos/GNS3/gns3-registry/contents/appliances',
ssl=self._ssl_context,
headers=headers
) as response:
if response.status == 304: