diff --git a/example-config.yaml b/example-config.yaml index f1b72855..f2a96e96 100644 --- a/example-config.yaml +++ b/example-config.yaml @@ -2,6 +2,7 @@ homeserver: address: https://matrix.org domain: matrix.org + verify_ssl: true # Application service host/registration related details # Changing these values requires regeneration of the registration. diff --git a/mautrix_appservice/appservice.py b/mautrix_appservice/appservice.py index bb340607..bd775df4 100644 --- a/mautrix_appservice/appservice.py +++ b/mautrix_appservice/appservice.py @@ -28,9 +28,10 @@ from .state_store import StateStore class AppService: def __init__(self, server, domain, as_token, hs_token, bot_localpart, loop=None, log=None, - query_user=None, query_alias=None): + verify_ssl=True, query_user=None, query_alias=None): self.server = server self.domain = domain + self.verify_ssl = verify_ssl self.as_token = as_token self.hs_token = hs_token self.bot_mxid = f"@{bot_localpart}:{domain}" @@ -80,7 +81,10 @@ class AppService: @contextmanager def run(self, host="127.0.0.1", port=8080): - self._http_session = aiohttp.ClientSession(loop=self.loop) + connector = None + if self.server.startswith("https://") and not self.verify_ssl: + connector = aiohttp.TCPConnector(verify_ssl=False) + self._http_session = aiohttp.ClientSession(loop=self.loop, connector=connector) self._intent = HTTPAPI(base_url=self.server, domain=self.domain, bot_mxid=self.bot_mxid, token=self.as_token, log=self.log, state_store=self.state_store, client_session=self._http_session).bot_intent() diff --git a/mautrix_telegram/__main__.py b/mautrix_telegram/__main__.py index 2c5ce1ff..6023a7c8 100644 --- a/mautrix_telegram/__main__.py +++ b/mautrix_telegram/__main__.py @@ -85,7 +85,8 @@ loop = asyncio.get_event_loop() appserv = AppService(config["homeserver.address"], config["homeserver.domain"], config["appservice.as_token"], config["appservice.hs_token"], - config["appservice.bot_username"], log="mau.as", loop=loop) + config["appservice.bot_username"], log="mau.as", loop=loop, + verify_ssl=config["homeserver.verify_ssl"]) context = Context(appserv, db_session, config, loop, None, None, telethon_session_container) diff --git a/mautrix_telegram/config.py b/mautrix_telegram/config.py index b7bcf8bc..070f04ec 100644 --- a/mautrix_telegram/config.py +++ b/mautrix_telegram/config.py @@ -183,6 +183,8 @@ class Config(DictWithRecursion): "Use inline images instead of m.image to make rich captions possible.\n" "N.B. Inline images are not supported on all clients (e.g. Riot iOS).") self.comment_newline("bridge.inline_images") + if "homeserver.verify_ssl" not in self: + self["homeserver.verify_ssl"] = True self["version"] = 2 return self["version"]